
json数据1、准备json数据{ login_success: { enterprise: ydhl, account:ganfeimei, psd: Ydhl123456, expect: 甘飞梅原点演示 } }2、编写读取json数据的函数在utils第三方工具文件中封装读取测试参数的方法BaseDiros.path.dirname(os.path.abspath(__file__))defread_params_data(filename,method,param_names): :param filename: json数据文件名称 :param method: 测试用例名称 :param param_names: 用例中参数名称 :return: filenameBaseDir/data/filename test_case_data[]withopen(filename,encodingutf-8)asf:file_datajson.load(f)test_datafile_data.get(method)#定义参数listtest_param[]forparaminparam_names.split(,):#以逗号分隔listtest_param.append(test_data.get(param))#测试json文件中取参数的值后加大参数list中test_case_data.append(tuple(test_param))#参数值加到测试用例数中returntest_case_data修改测试脚本1、增加参数化方法一直接使用参数pytest.mark.parametrize(enterprise,account,psd,expect,[(ydhl,ganfeimei,Ydhl123456,甘飞梅原点演示)])方法二case_dataread_params_data(login_data.json, login_success, enterprise,account,psd,expect)脚本中方法二通过函数获取参数:pytest.mark.parametrize(read_params_data(login_data.json,login_success,enterprise,account,psd,expect))importpytestfrompage.page_homeimportHomeProxyfrompage.page_loginimportLoginProxyfrompage.page_digitalimportDigitalProxyimportloggingfromutilsimportUtilsDriver,get_msg,read_params_datafromparameterizedimportparameterized#方法二参数化# case_dataread_params_data(login_data.json, login_success, enterprise,account,psd,expect)# print(case_data)#定义测试类classTestLogin:#初始化。类级别的defsetup_class(self):self.login_proxyLoginProxy()self.home_proxyHomeProxy()self.dig_proxyDigitalProxy()#结束销毁类级别统一销毁defteardown_class(self):UtilsDriver.quit_driver()#调用工具类中的关闭webdriver对象#方法三参数化使用函数pytest.mark.parametrize(enterprise,account,psd,expect,read_params_data(login_data.json,login_success,enterprise,account,psd,expect))# 方法二参数化使用函数获取的参数# pytest.mark.parametrize(enterprise,account,psd,expect,case_data)#方法一参数化直接在列表元组中直接输入测试参数# pytest.mark.parametrize(enterprise,account,psd,expect,[(ydhl,ganfeimeiydys,Ydhl123,甘飞梅原点演示)])deftest01_login(self,enterprise,account,psd,expect):# 调用登陆业务进入首页参数有账号密码self.login_proxy.go_home_page(enterprise,account,psd)usernameself.home_proxy.get_username_msg()#获取登陆者姓名#断言assertexpectusername logging.info(登陆者姓名{}.format(username))#日志记录测试用例数据logging.info(测试用例数据企业:{},账号{},预期结果{}.format(enterprise,account,expect))2、增加日志显示测试数据#日志记录测试用例数据 logging.info(测试用例数据企业:{},账号{},预期结果{}.format(enterprise,account,expect))3、测试结果和报告