def __init__(self): try: self.fileName = contants.caseFile log.info(f'打开测试用例数据文件:{self.fileName}') self.workBook = openpyxl.load_workbook(filename=self.fileName) except FileNotFoundError as e: log.error(f'用例文件: {self.fileName}不存在请检查\n{e}')
def __init__(self, method, url, data=None, cookies=None, header=None): try: log.info(f'开始发起请求: 请求方式{method}, 请求url={url}, \n请求参数={data}') if method == 'get': self.res = requests.get(url=url, params=data, cookies=cookies) elif method == 'post': self.res = requests.post(url=url, json=data, cookies=cookies) else: log.info(f'没有添加{method}这个请求方法请优化Requests类') except Exception as e: log.error(f'未知异常请检查request请求\n{e}')
def fetch_all(self, sqlValue): # 查询多条数据并且返回 # 修改返回值为数组键值对 cursor=pymysql.cursors.DictCursor cursor = self.db.cursor() try: # 按照sql进行查询 cursor.execute(sqlValue) # 返回一条数据 还有 all size(自己控制) data = cursor.fetchall() return data except pymysql.err.ProgrammingError as e: log.error(f"请检查sql是否正确 sql={sqlValue}") raise e finally: self.close_connect()
def writeExcel(self, sheetName, caseId, actual, result): sheet = self.workBook[sheetName] maxRow = sheet.max_row for row in range(2, maxRow + 1): # 取出每一行的caseId _caseId = sheet.cell(row=row, column=1).value try: # 判断取出caseId是否等于传入的caseId if _caseId == caseId: # 写入 actual 和 result sheet.cell(row, 7).value = actual sheet.cell(row, 8).value = result self.workBook.save(filename=self.fileName) break except Exception as e: log.error(f'写入excel异常请检查\n{e}')
def fetch_one(self, sqlValue, name=None): # 修改返回值为数组键值对 cursor=pymysql.cursors.DictCursor cursor = self.db.cursor() try: # 按照sql进行查询 cursor.execute(sqlValue) if name is None: # 返回一条数据 还有 all size(自己控制) data = cursor.fetchone() return data[0] elif name is not None: data = cursor.fetchone() return data[0] except Exception as e: log.error(f"请检查sql是否正确 sql={sqlValue}") raise e finally: self.close_connect()
def __init__(self, connectName): config = ConfigLoader() if connectName != 'mysql': host = config.get(connectName, 'host') user = config.get(connectName, 'user') pwd = config.get(connectName, 'pwd') port = config.getint(connectName, 'port') else: host = config.get('mysql', 'host') user = config.get('mysql', 'user') pwd = config.get('mysql', 'pwd') port = config.getint('mysql', 'port') try: self.db = pymysql.connect(host=host, user=user, password=pwd, database=None, port=int(port)) except TimeoutError as e: log.error( f'数据库链接超时请检查,地址{host},用户名{user},密码{pwd},端口号{port} \n {e}') raise e except IndentationError as e: log.error(f'数据库链接用户名不存在请检查 用户名:{user} \n {e}') except pymysql.err.OperationalError as e: log.error(f'用户名或密码错误请检查 用户名:{user} 密码:{pwd} \n {e}')
def jsonToOneValue(json, rule): try: value = jsonpath.jsonpath(json, rule) return value[0] except Exception as e: log.error(f"无法正常获取json内容请检查解析表达式{rule}", e)