news 2026/8/31 21:10:18

selenium实战记录-从登陆-首页-进入应用流程用例三种参数化+日志+报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
selenium实战记录-从登陆-首页-进入应用流程用例三种参数化+日志+报告

json数据

1、准备json数据:

{ "login_success": { "enterprise": "ydhl", "account":"ganfeimei", "psd": "Ydhl123456", "expect": "甘飞梅原点演示" } }

2、编写读取json数据的函数:在utils第三方工具文件中封装读取测试参数的方法

BaseDir=os.path.dirname(os.path.abspath(__file__))defread_params_data(filename,method,param_names):""" :param filename: json数据文件名称 :param method: 测试用例名称 :param param_names: 用例中参数名称 :return: """filename=BaseDir+"/data/"+filename test_case_data=[]withopen(filename,encoding="utf-8")asf:file_data=json.load(f)test_data=file_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_data=read_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_data=read_params_data("login_data.json", "login_success", "enterprise,account,psd,expect")# print(case_data)#定义测试类,classTestLogin:#初始化。类级别的defsetup_class(self):self.login_proxy=LoginProxy()self.home_proxy=HomeProxy()self.dig_proxy=DigitalProxy()#结束销毁,类级别,统一销毁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)username=self.home_proxy.get_username_msg()#获取登陆者姓名#断言assertexpect==username logging.info("登陆者姓名:{}".format(username))#日志记录测试用例数据logging.info("测试用例数据:企业:{},账号:{},预期结果:{}".format(enterprise,account,expect))

2、增加日志,显示测试数据:#日志记录测试用例数据 logging.info("测试用例数据:企业:{},账号:{},预期结果:{}".format(enterprise,account,expect))
3、测试结果和报告:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 21:09:56

从IDM到实验DnB:解析Sadesper Record的碎拍与低音设计

最近整理旧电子乐唱片时又翻出 Sadesper Record 的 Externalization 1。这张 1999 年的 IDM / 鼓打贝斯专辑,不是那种会被平台算法反复推送到你面前的热门货,但如果你喜欢节拍细碎、低音深沉、氛围感很强的实验电子乐,它值得放进待听清单。先…

作者头像 李华
网站建设 2026/8/31 21:09:02

SSM在线考试系统项目深度拆解:从架构设计到部署实践

简介:本资源是面向计算机专业本科生的毕业设计实战项目——基于SSM框架(SpringSpringMVCMyBatis)开发的高中在线考试系统,聚焦电子化考试场景,覆盖试题管理、在线作答、成绩反馈与考试监控等核心功能,适用于…

作者头像 李华
网站建设 2026/8/31 21:07:41

2020全国村名点SHP数据实用手册:解压、坐标系转换与格式互转指南

简介:本资源为2020年全国村级行政单位空间定位数据,面向GIS从业者、城乡规划研究者、乡村振兴项目实施人员及地理信息相关专业师生,解决基层行政区划点位缺失、空间分析底图不全等实际问题。压缩包共6个标准Shapefile组成文件:shp…

作者头像 李华
网站建设 2026/8/31 21:06:45

DQN入门实践:从零实现MountainCar小车爬山

简介:本资源是一份面向强化学习初学者与Python开发者的实战项目,聚焦Deep Q-Network(DQN)算法在经典控制任务MountainCar中的完整实现,解决智能体如何通过试错学习克服物理约束、自主达成目标的核心问题。压缩包共2个文…

作者头像 李华
网站建设 2026/8/31 21:05:52

Matlab通用MAP图绘制指南:从电机效率云图到任意二维数据场

简介:本资源是一套开箱即用的Matlab电机MAP绘制程序,面向电机控制工程师、电驱动系统研发人员及高校相关方向研究生,解决实际项目中电机效率、转矩、电流等多维性能数据难以高效可视化的问题。压缩包共3个文件(116KB)&…

作者头像 李华
网站建设 2026/8/31 21:02:02

JavaFX实现流程图设计器:开发实战与答辩指南

简介:这是一份面向Java初学者与课程设计学生的期末大作业实践资源,基于JavaFX开发轻量级流程图设计器,解决算法可视化、程序逻辑梳理及教学演示等实际需求。资源包共21个文件,含13个Java源码(涵盖主界面、图形节点、连…

作者头像 李华