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


自动化-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路径

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

测试准备

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

测试脚本编写

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

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

脚本试跑

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

流程总结

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

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 !
  TOC