def write_excel(self,sheet_name,content): # 列数从1开始,行数从1开始,首行首列都是1 logger = get_log(inspect.stack()[0][3],style=self.log_style) wb = openpyxl.load_workbook(self.path) ws = wb.get_sheet_by_name(sheet_name) row_num = ws.max_row print(row_num) try: ws.cell(row=row_num+1,column=1).value=content except Exception as msg: logger.info(msg) finally: wb.save(self.path)
def screen_shot(driver): # 设置截图文件保存的路径 path = 'D:\\XXXX\\' path = os.path.join(path, 'ScreenShot') if not os.path.exists(path): os.mkdir(path) # 设置要截图的文件名 file_name = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime()) + '.png' path = os.path.join(path, file_name) log = get_log('screen_shot') try: driver.get_screenshot_as_file(path) log.info('截图成功') except OSError: log.info('截图失败')
def rabp_apply(self, mchtName): """ 查询表数据 :return: 返回APPLY_NO, APPLY_STATUS(1=已提交), AUDIT_STATUS = 审核状态(1-待审批 2-审批通过 3-补件 4-拒绝 5-拒绝转补件) """ logger = get_log(inspect.stack()[0][3], self.log_style) connect = self.connect_mysql() cursor = connect.cursor() sql = "SELECT a.APPLY_NO,a.ID_NO,a.license_no,a.MCHT_TYPE,a.BUSINESS_TYPE,a.TRADE_TYPE," \ "a.APPLY_STATUS,a.AUDIT_STATUS " \ "from rabp_apply a LEFT JOIN 表名 d ON a.APPLY_NO = d.APPLY_NO WHERE d.MCHT_NAME = '%s';"\ % (mchtName)
def read_max_row(self): logger = get_log(inspect.stack()[0][3],style=self.log_style) with xlrd.open_workbook(self.path, 'rb') as book: sheets = book.sheet_names() row_num0 = book.sheet_by_name('eighth_page').nrows for sheet in sheets: table = book.sheet_by_name(sheet) row_num = table.nrows if row_num0 != row_num: content = sheet + "只有%s"%(row_num) + "行,eighth_page有%s" %(row_num0) + "行,请重新设置" logger.info(content) break else: return int(row_num)
def rabp_approve_flow(self, apply_no, approve_node=20,approve_step=1): """ :param apply_no: :param approve_node: :param approve_step: :return: 返回审核节点审核人员UM """ logger = get_log(inspect.stack()[0][3], self.log_style) connect = self.connect_mysql() cursor = connect.cursor() sql = "SELECT a.prev_approve_user from 表名 a " \ "WHERE a.apply_no='%s' AND a.approve_node='%s' AND a.approve_step='%s'; " \ % (apply_no,approve_node,approve_step)
def apply_risk(self, apply_no): # 修改数据库的值 logger = get_log(inspect.stack()[0][3],self.log_style) connect = self.connect_mysql() cursor = connect.cursor() sql = "SELECT `status` from 表明 WHERE apply_no = '%s'" % (apply_no) logger.info('执行的sql是:' + sql) try: cursor.execute(sql) risk_status = dict(zip([col[0] for col in cursor.description],[col for col in cursor.fetchone()])) content = '结果:' + risk_status['status'] logger.info(content) # if risk_status['status'] != '2': # sql = "UPDATE 表名 SET `status`='%d' WHERE apply_no='%s'" % (2, apply_no) # print('修改值为通过,执行的sql如下:') # try: # cursor.execute(sql) # 执行sql # connect.commit() # 提交 # except Exception as msg: # print('执行失败,回滚:\n', msg) # connect.rollback() # 若发生错误回滚 # else: # print('风险初筛自动审核通过,状态是:', risk_status['status']) return risk_status except Exception as msg: logger.info(msg) finally: cursor.close() connect.close()
def rabp_capital(self,apply_no): """ 检查资处审核状态和二录审核人员 :param apply_no: :return: """ logger = get_log(inspect.stack()[0][3], self.log_style) connect = self.connect_mysql() cursor = connect.cursor() sql = "SELECT c.cap_status,c.cap_user,c.qc_status from 表名 c WHERE c.apply_no = '{apply_no}';"\ .format(apply_no=apply_no)
def rabp_approve_node(self, apply_no, approve_node=10): """ :param apply_no: :param approve_node: 审批节点 10:风险审核;20:收单审核;30:分期审核;40:风险人工审核 :return: """ logger = get_log(inspect.stack()[0][3], self.log_style) connect = self.connect_mysql() cursor = connect.cursor() sql = "SELECT r.APPLY_NO,r.approve_step,r.apply_seq,r.approve_status from 表名 r " \ "WHERE r.APPLY_NO='%s' AND r.approve_node='%s';" % (apply_no,approve_node)
#!/usr/bin/env python # -*- coding:utf-8 -*- # fileName: test_asset.py from API.all_api import AllApi import pytest from common.get_log import get_log logger = get_log() # 资产模块的测试用例 @pytest.mark.asset @pytest.mark.usefixtures("init_token") class TestAsset(object): @pytest.fixture(scope="class") def init_asset(self): logger.info( "\n ==============================【资产】测试用例开始 ==============================" ) all_request = AllApi() return all_request @pytest.mark.test @pytest.mark.parametrize("api_name", ["asset_main"]) def test_asset_main(self, api_name, init_asset): print("\n 用例名称:获取资产列表信息\n") res = init_asset.send_request(api_name) # 获取某接口下的预期返回结果 expected = init_asset.get_expect(api_name) # 断言1:success的值为true # assert res['success'] is True, "success的值为: %s" % res['success'] # assert res['status_code'] == expected['status_code'], "status_code的值为: %s" % res['status_code']
def __init__(self): self.run = RunMethod() self.read = ReadYaml() self.logger = get_log()
def read_excel_rows(self, row): """ 根据指定行,读取所有sheet并以嵌套字典返回 {'config': {'env': 'uat', 'log_style': 'console'}, 'first_page': {'mchtType': '1', 'businessType': '0100', 'tradeType': '1010'}, """ logger = get_log(inspect.stack()[0][3],style=self.log_style) with xlrd.open_workbook(self.path, 'rb') as book: sheets = book.sheet_names() data_dict = {} for sheet in sheets: table = book.sheet_by_name(sheet) # 找到sheet页 # 获取总行数总列数 row_num = table.nrows col_num = table.ncols key = table.row_values(0) # 这是第一行数据,返回一个列表,作为字典的key值 xlsx_dict = {} if row_num <= 1: logger.info('excel为空') else: try: values = table.row_values(row) for x in range(col_num): # 有多少列,赋值多少次 # 把key值对应的value赋值给key,每行循环一次 xlsx_dict[key[x]] = values[x] # 把字典添加到列表中 except Exception as msg: logger.info(msg) logger.info('excel中每个sheet行数不一致') data_dict[sheet]=xlsx_dict return data_dict
def __init__(self): self.logger = get_log()
logger.info(msg) finally: cursor.close() connect.close() if __name__ == '__main__': env = 'uat' OM = Operate_Mysql(env) logger = get_log('rabp', 'console') globals()['mchtName'] = 'XXX1' apply = OM.rabp_apply(globals()['mchtName']) # print(apply) # r = OM.rabp_approve_node('0545000020200330164336774344',approve_node=10) # print(int(r['approve_step']) == 1 and int(r['approve_status']) == 3) # if int(r['approve_step']) == 1 and int(r['approve_status']) == 3: # print('222')