自动化-Selenium脚本编写流程梳理


自动化-Selenium脚本编写流程梳理

本文主要记录,一次UI自动化脚本编写流程,测试框架为pytest+selenium,二次开发使用PO模式

前言

在我目前的工作中,UI自动化主要用于偶发bug的复现及重要页面的回归.今天恰好有一个需求需要创建一个脚本,实现的操作是对账户的信息进行修改,正好梳理一下脚本编写流程

业务分析

通过测试要求反推测试用例及测试元素

mermaid
测试需求
测试流程
测试涉及页面
测试涉及元素

页面对象代码编写

page object路径创建

在page文件夹下对应模块名,对应页面class名,建立类初始化方法及元素操纵方法

分析页面元素结构

如下是一个表格的标签元素结构,其中我们的目的是,点击指定名称编辑账号按钮

1级标签 2级标签 3级标签 4级标签
tr td <div class ="cell">名称</div>
td
td button <span>编辑账号</span>

通过名称选择指定元素

在表格进行选择元素时,最方便的方式是使用index选择,但是在面对不同的环境,不同测试账户时,非常容易出现元素抓取失败.而使用text()进行抓取,往往能避免这个问题.

通过属性查询,文本查询以及兄弟节点查询,我们成功找到了想要的编辑账号按钮,其他的元素同理进行脚本编写

none
//div[@class='cell'][text()="superadmin"]/../following-sibling::*//button/span[contains(text(),"编辑账号")]

测试用例编写

testcases路径创建

按照业务模块层级创建testcases路径

本次的用例需要循环操作,专用的用例编写在临时文件夹中

测试准备

  1. 导入web driver基类,登录类,page object类
  2. setupclass方法初始化以上类的对象
  3. 加入logging日志信息

测试脚本编写

  1. get url并登录到达测试页面
  2. 调用PO对象的元素操纵方法,完成复现操作
  3. 使用assert断言

如果回归脚本,直接到第3步就OK了

脚本试跑

确认不同环境代码均可运行通过

流程总结

mermaid
业务分析测试流程及页面操作
页面对象编写元素操纵方法
用例组合元素操纵方法进行流程测试
脚本试跑

Author: Feny Lau
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Feny Lau !