自动化-Selenium脚本编写流程梳理
本文主要记录,一次UI自动化脚本编写流程,测试框架为pytest+selenium,二次开发使用PO模式
前言
在我目前的工作中,UI自动化主要用于偶发bug的复现及重要页面的回归.今天恰好有一个需求需要创建一个脚本,实现的操作是对账户的信息进行修改,正好梳理一下脚本编写流程
业务分析
通过测试要求反推测试用例及测试元素
graph LR 测试需求 --> 测试流程 --> 测试涉及页面 --> 测试涉及元素
页面对象代码编写
page object路径创建
在page文件夹下对应模块名,对应页面class名,建立类初始化方法及元素操纵方法
分析页面元素结构
如下是一个表格的标签元素结构,其中我们的目的是,点击指定名称
的编辑账号
按钮
1级标签 | 2级标签 | 3级标签 | 4级标签 |
---|---|---|---|
… | … | … | … |
tr | td | <div class ="cell">名称</div> |
|
td | … | … | |
td | button | <span>编辑账号</span> |
通过名称选择指定元素
在表格进行选择元素时,最方便的方式是使用index选择,但是在面对不同的环境,不同测试账户时,非常容易出现元素抓取失败.而使用text()进行抓取,往往能避免这个问题.
通过属性查询,文本查询以及兄弟节点查询,我们成功找到了想要的编辑账号
按钮,其他的元素同理进行脚本编写
//div[@class='cell'][text()="superadmin"]/../following-sibling::*//button/span[contains(text(),"编辑账号")]
测试用例编写
testcases路径创建
按照业务模块层级创建testcases路径
本次的用例需要循环操作,专用的用例编写在临时文件夹中
测试准备
- 导入web driver基类,登录类,page object类
- setupclass方法初始化以上类的对象
- 加入logging日志信息
测试脚本编写
- get url并登录到达测试页面
- 调用PO对象的元素操纵方法,完成复现操作
- 使用assert断言
如果回归脚本,直接到第3步就OK了
脚本试跑
确认不同环境代码均可运行通过
流程总结
graph 业务分析测试流程及页面操作 --> 页面对象编写元素操纵方法 --> 用例组合元素操纵方法进行流程测试 -->脚本试跑