范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

接口自动化测试框架实战日志和数据库的封装

  log日志的封装import datetime import logging import os  from config import Conf from config.Conf import ConfigYaml  log_l = {     "info": logging.INFO,     "debug": logging.DEBUG,     "warning": logging.WARNING,     "error": logging.ERROR  }  class Logger():     def __init__(self, log_file, log_name, log_level):         self.log_file = log_file         self.log_name = log_name         self.log_level = log_level         #设置logger名称         self.logger = logging.getLogger(self.log_name)         self.logger.setLevel(log_l[self.log_level])         formatter = logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s")         if not self.logger.handlers:             # 输出到控制台             self.fh_stream = logging.StreamHandler()             self.fh_stream.setLevel(log_l[self.log_level])             self.fh_stream.setFormatter(formatter)             self.logger.addHandler(self.fh_stream)             #写入文件             self.fh_file = logging.FileHandler(self.log_file)             self.fh_file.setLevel(log_l[self.log_level])             self.fh_file.setFormatter(formatter)             self.logger.addHandler(self.fh_file)  #获取日志文件存储路径 log_path = Conf.get_log_path()  current_time = datetime.datetime.now().strftime("%Y-%m-%d")  log_extension=ConfigYaml().get_conf_log_extension()  #日志文件名称 logfile=os.path.join(log_path,current_time+log_extension)  #获取日志级别(放在配置文件里面,方便根据需求修改) loglevel = ConfigYaml().get_conf_log()  def my_log(log_name=__file__):      return Logger(log_file=logfile,log_name=log_name,log_level=loglevel).logger  if __name__ == "__main__":     my_log().info("123456") 数据库的封装import pymysql from utils.LogUtil import my_log class MySql():     def __init__(self,host,user,password,database,charset,port):         self.log = my_log("database")         self.conn = pymysql.connect(                     host=host,                     user=user,                     password=password,                     database=database,                     charset=charset,                     port=port                     )         self.cursor=self.conn.cursor(pymysql.cursors.DictCursor)      def fetchone(self, sql):         self.cursor.execute(sql)         return self.cursor.fetchone()      def fetchall(self, sql):         """         多个查询         """         self.cursor.execute(sql)         return self.cursor.fetchall()      def exec(self, sql):         """         执行         """         try:             if self.conn and self.cursor:                 self.cursor.execute(sql)                 self.conn.commit()         except Exception as ex:             self.conn.rollback()             self.log.error("Mysql 执行失败")             self.log.error(ex)             return False         return True          # 4、关闭对象      def __del__(self):         # 关闭光标对象         if self.cursor is not None:             self.cursor.close()         # 关闭连接对象         if self.conn is not None:             self.cursor.close()  if __name__ == "__main__":     mysql = MySql("xxxxxxx",                   "test",                   "test123456","xxxxxx",                   charset="utf8",                   port=7090)     res = mysql.fetchall("select username,password from tb_users")     # res = mysql.exec("update tb_users set first_name="python" where username = "python"")     print("1111",res)

轻装户外运动鞋,斯立德大地系列S204深度体验俗话说的好,鞋合不合适,只有脚知道。你想挑一双合适你的户外运动鞋?我的脚说了不算,钱包说了算。玩笑归玩笑,接下来我想跟各位分享这段时间我试穿斯立德大地系列S204的感受,以及挑选户30秒过安检是一种怎样的体验?地平线8号商务登机箱评测一前言经常出差坐飞机的人应该都知道笔记本电脑和充电宝需要和行李箱分开过安检,大部分人都会选择额外带一个电脑包,或是从行李箱内取出电脑再置入,当麻烦变成习惯依然还是个麻烦。想当年我在佳能索尼通用,一充四座,XTARVN2屏显相机充电器评测座充几乎是每位摄影人外出拍摄的必备配件,如果你还在直连充电线或者使用劣质底座,充电效率低不说,还有可能损伤电池寿命。最近刚好有这个机会体验这款XTAR屏显相机电池充电器,使用两周半螺丝刀一支就够了,WOWSTICK手动螺丝刀套装分享一前言普通的螺丝刀用完了随便一扔,找不到了花十几块钱再买一套,是最不起眼的工具。如果想做点有仪式感的案头工作,比如像手工耿那样的,没有一套趁手的工具是不行的。我最近收到的这套WOW冲牙,小蛮腰!欧卡尔琳P40冲牙器体验记牙,该从何说起呢?从十年前啃鸡爪子把牙咬崩了,去医院补牙那天开始吧,之后我就非常在意牙齿清洁,坚持饭后漱口,定期更换牙刷,与牙齿健康相关的文章我都会格外关注。好巧不巧,亿智蘑菇最近长了PS4的脸,流着Xbox的血,北通蝙蝠4手柄评测Xbox和PS4手柄究竟哪个更好用?您是否曾经这两者之间犹豫过呢?花开两朵,咱各表一枝,不论您选哪位,现如今要挑一款PS4布局的手柄可真不太容易。高仿的看上去很美,兼容性摇杆按键如来给你的冬天加把火,FOOXMET风谜智能温控电加热服讨厌冬天!不知您各位是否有这种体会,天儿一转凉,甭管穿多少衣服,手脚都是冰凉的,我不止一次羡慕那些大冬天只穿一件T恤羽绒服还能暖手暖脚的人。倘若一件衣服既能暖身,还能暖手,岂不乐哉会用光用好光,洋葱工厂布朗尼摄影灯套装体验摄影是用光的艺术,想必你已经听过这句话了。光是影响照片氛围感的重要因素,充足的光线能够最大程度发挥相机性能,好的摄影师总是在第一时间找到合适的光线。如果光线不足,或者需要特殊光,那你的背包,背到现在还没烂,多特DEUTER户外通勤电脑包评测多特是欧洲大牌户外运动装备厂商,户外探险人应该或多或少都听说过多特,我身边用FUTURA系列的朋友对它的评价是多特的背负系统永远不会让人失望。回过头来,这位欧洲老炮做起日用通勤包会2020年最后一次毫无保留的JEETONE无线蓝牙耳机评测2020年只剩下最后一个月了,如果你还没有用过真无线蓝牙耳机,那真应该反思一下了。也许是选择太多,也许是等等党的诱惑实在太大,可以确定的是,无线耳机已经是比较成熟的产品了,无论是运好熨来,居家小技能1,舒乐氏手持挂烫机体验一前言曾几何时,熨斗也算是家中的必备电器,现在会用的年轻人好像不太多了,习惯了穿旧即换,哪知衣服只要熨得好,新旧自然了无痕。传统的电熨斗笨重占地方,吃灰几率极高,因此选对合适的熨烫
车中ampampquot花木兰ampampquot,2022年欧拉好猫GT来了,单电机百公里6。9秒加速说到女中豪杰,我们第一时间会想到花木兰。而在汽车市场,新能源领域专注于女性消费者的就是欧拉汽车了,目前家族上市了一款很有意思的新车,那就是欧拉好猫GT木兰版。跟家族之前比较呆萌可爱坦克400亮相成都车展,定位中大型SUV,机甲风十足!成都车展中自主品牌热度很高,坦克家族车型就是很好的案例。在这次展台上,坦克400正式亮相,凭借出色的机甲风格,可以看到展台上的人流量络绎不绝,下面就让我们具体看一看。从外观的角度来奔驰S级实拍450L4MATIC,可选像素式大灯作为一款大型车,奔驰S级算是很有代表性的一款车型,凭借超高的舒适度,成为很多老板的座驾。今天要跟大家解析的是2021款奔驰S级改款S450L4MATIC,指导售价在128。48万,实拍北京现代库斯途,预售17。58万,7座定位还得选2。0T车型!说起MPV车型,很多老车迷脑中闪过的车型寥寥无几,能够脱口而出的就是别克GL8奥德赛。对于相对冷门的种类来讲,需要一些新鲜血液顶上来,北京现代即将推出一款很有实力的MPV车型,名字销量不及造车新势力车型,百公里加速6。8秒,宝马ix3实力解析!新能源车型逐渐成为市场主流,不仅仅是一些造车新势力不断发力,很多传统品牌,同样是不愿意错过未来机遇。就拿宝马来说,推出了纯电动车型ix3,目前一共是两款车型,续航里程分别在490公三菱劲炫ASX实拍家族顶配车型,同为日系SUV你还记得它吗?在日系车中,三菱汽车会相对低调一些,家族车型很多人甚至了解得并不全面,今天跟大家来聊的是一款紧凑型SUV,名字叫做劲炫ASX。从价格上讲够亲民,指导售价在9。9813。98万之间,预售6。89万起,凯翼轩度共推6款车型,配奇瑞1。5T引擎实力如何?酒厂造车很有话题性,但能够获得成功是一件很难的事情。就拿凯翼汽车来讲,成立有一段时间了,但一直磕磕绊绊,没有什么经典车型出现,作为奇瑞旗下的品牌,在2017年的时候,有51股份转到宝马1系入门豪华运动车型,最高配2。0T引擎实力如何?很多年轻人,买车都追求品牌效应,在入门级豪华车型中,说到运动,宝马1系算是不错的选择之一。作为紧凑型家用轿车,目前在售版本车型指导售价在20。5824。68万之间,但实际上优惠力度王彦涛庚子情人节原创诗词六首王彦涛王彦涛庚子情人节原创诗词六首作者王彦涛编辑天美五星王彦涛(一)二月里来换新天,早春含羞绽媚颜。江南花蕊曾心动,北国寒梅染边关。四柱擎天中开五,巾帼英雄岂等闲?驿寄梅花传尺素,奕炫MAX对比卡罗拉,国产合资你选谁?国产车型,近些年来设计越来越大胆,并且价格上没有让人望而却步。就拿最近才上市的东风风神奕炫MAX来讲,一共推出6款车型,指导售价在9。3912。59万之间,非常符合年轻人的定位。而冒雨实拍途胜L,鹰翼日间行车灯醒目,车内配10。4英寸屏换档拨片途胜L上市已经有了一段时间,对比老款车型有了很大升级。目前一共推出4款车型,指导售价在16。1820。18万之间,最近有一次逛街,看到了一台途胜L,外面微微下着小雨,但还是冒着被淋