UI自动化之分层思想pom模式

1.什么是POM
页面对象模型(POM)是一种设计模式,用来管理维护一组web元素集的对象库;
在POM下,应用程序的每一个页面都有一个对应的page class;

每一个page class维护着该web页的表现层和操作层;
page class中的方法命名最好根据其对应的业务场景进行,

例如通常登录后我们需要等待几秒中,我们可以这样命名该方法: waitingForLoginSuccess().

2.POM优点
2.1.POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
2.2.对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
2.3.可复用的页面方法代码会变得更加优化
2.4.更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。
例如我们要回到首页,方法名命名为: gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。

3.POM模式结构
project–项目名称
common–公共方法
base.py–selenium方法二次封装
page–封装项目所有页面,每一个pageClass都继承Base类
loginpage.py–登录页面封装
homepage.py–首页封装
script–业务流程/测试用例
test_login.py–登录功能测试用例;登录流程,引用page中的loginpage文件
data–存放测试数据
excel
txt
yaml
config–存放配置文件
log–测试脚本日志文件
report–测试报告
run_case.py执行用例

4.测试用例管理
unittest
编写测试用例:
特殊方法:
setUp:在测试用例执行前执行
tearDown:在测试用例执行后执行
setUpClass:在测试类中的所有测试用例执行前执行一次,并需要@classmethod装饰器
tearDownClass:在测试类中的所有测试用例执行后执行一次,并需要@classmethod装饰器
测试用例编写:
每个测试用例必须以test开头
测试用例执行顺序按照ASCII码顺序执行,与编写顺序无关
跳过测试:skip跳过测试类,跳过测试方法
断言:assert
执行测试用例run_case.py:
在当前文件执行:unittest.main()
批量执行:
测试套件:
discover = unittest.defaultTestLoader.discover(用例目录,pattern=‘用例文件.py’)
测试执行:
测试文件名称:
report_file = “测试报告文件路径+名称”
with open(report_file,“wb”)as fp:
runner = HTMLTestRunner.HTMLTestRunner(title=‘自动化测试报告’,
description=‘用例执行情况:’,
stream=fp,
verbosity=2
)
runner.run(discover)

5.测试数据管理
对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)
对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成
对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以
对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理
对于邮箱配置的一些参数,可以用ini配置文件
对于全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据
对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的
6.代码管理
Git

7.持续集成
Jenkins:
安装,部署,新建项目,配置项目,定时任务…

最后
俺叫小枫,一个成天想着一夜暴富的测试员

(1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!
————————————————
版权声明:本文为CSDN博主「程序员-小枫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49346599/article/details/108520638

UI自动化之分层思想pom模式

上一篇:scrollWidth,clientWidth,offsetWidth 三者区别


下一篇:React Navigation 5.x BottomTab 使用