前言:
在python自动化过程中,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率。
不了解po设计模式的可自行百度
面向对象的特性:封装、继承、多态
传统测试脚本的弊端:
- 测试脚本分离,维护成本高
- 可扩展性差
- 复用性低等
1、实现案例
1.1 工程目录
listing:项目根目录
cofig:配置文件
data:用例数据
logs:日志记录
picture:图片存放(用于UI)
pylib:自定义库
report:报告
test_case:用例相关
main_test:程序运行入口
pytest.ini:pytest框架配置的标签
1.2 公共方法
封装BasePage:
1.由于做selenium自动化测试的时候需要webdriver的实例,我们可以将driver封装在init方法里面,并且需要加一个判断。判断当前对象有没有driver,没有driver就生成driver,有了driver就不再产生新的driver,这一步可以通过单例模式实现
2.将公共的操作如:点击操作、输入框、获取文本信息、获取元素属性、检测元素是否可见等方法封装在基类里面以便于直接调用方法
2.2 元素定位
将元素定位表达式写在配置文件里面(yaml文件),然后编写业务代码的时候直接读取配置文件对应的元素表达式就好了
优点:如果有100个地方用到了一个元素,当元素定位表达式变了,只需要改配置文件就行了,不用100个地方每个都修改。
2.3业务代码
编写具体的业务代码,实现步骤:
1.登录,继承基类BasePage的方法,登录被测系统,并且return登录以后的页面,也就是下面截图里面的:
return ShopeeDraftPage()
2.具体页面操作
2.4 测试用例、报告
框架采用pytest,报告用的allure
要点:编写用例的时候调用对应业务代码的方法,然后将具体步骤拼接起来
文章来源地址https://uudwc.com/A/8WpG文章来源:https://uudwc.com/A/8WpG