本文主要记录,一次UI自动化脚本编写流程,测试框架为pytest+selenium,二次开发使用PO模式
在我目前的工作中,UI自动化主要用于偶发bug的复现及重要页面的回归.今天恰好有一个需求需要创建一个脚本,实现的操作是对账户的信息进行修改,正好梳理一下脚本编写流程
通过测试要求反推测试用例及测试元素
graph LR
测试需求 --> 测试流程 --> 测试涉及页面 --> 测试涉及元素
在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路径
本次的用例需要循环操作,专用的用例编写在临时文件夹中
如果回归脚本,直接到第3步就OK了
确认不同环境代码均可运行通过
graph
业务分析测试流程及页面操作 --> 页面对象编写元素操纵方法 --> 用例组合元素操纵方法进行流程测试 -->脚本试跑