Web 自动化测试实战

师资培训

霍格沃兹测试开发学社

ceshiren.com

个人介绍

  • 李旭:霍格沃兹测试开发学社测试专家与金牌讲师,资深测试开发专家
  1. 《测试开发实战宝典》与《软件测试开发理论与项目实战教程》等书籍核心作者。
  2. 自动化测试、测试框架开发、测试平台架构专家,对互联网金融、区块链、物联网都有深入的测试经验。
  3. 行业知名的开源自动化测试项目 AppCrawler 核心维护者,模型驱动测试框架 MTF 核心维护者。
  4. 曾担任华为某部门测试效能提升项目的项目经理及测试开发专家、信通院 BIM 测试平台、物联网测试平台测试开发专家。

目录

  • Web自动化测试实战
  • Web自动化测试虚拟实验室
  • 火焰杯判卷标准

学习价值

  • 熟悉 Selenium 框架与常用操作
  • 掌握 Web 自动化测试用例录制能力
  • 掌握 Web 自动化测试用例编写能力
  • 掌握 Web 自动测试实战能力

知识点梳理

成果展示

Web 自动化测试

自动化测试价值与体系

测试场景对比

自动化测试在企业中的实践 - 有赞

有赞: 很多人会认为,UI 自动化维护成本高、性价比低,但是为什么在有赞的前端质量保证体系中放在了最前面呢?

自动化测试在企业中的实践 - 美团

如果要在 1 天时间内完成开发、测试、上线流程,研发团队也面临着很大的挑战。所以测试工程师就需要重度依赖自动化测试来形成快速的验收机制。

什么时候做 UI 自动化测试

  • 需要频繁回归的场景

  • 稳定的用户界面

  • 多浏览器和多平台兼容性

  • 复杂的用户交互

Web 自动化测试相关技术

  • Web 自动化框架:Selenium,支持多语言,行业内最火最主流
  • 测试框架:Pytest/JUnit5
  • 测试报告:Allure

Selenium 的简介

  • 用于 Web 浏览器测试的工具
  • 支持的浏览器包括 IE,Firefox,Safari,Chrome,Edge 等
  • 使用简单,可使用 Java,Python 等多种语言编写用例脚本
  • 主要由三个工具构成:WebDriver、IDE、Grid

环境安装与验证

Selenium 环境安装步骤

  1. 编程语言环境准备
  2. Driver 的下载与配置(Mac 与 Windows 不同)
  3. Selenium 依赖准备
  4. 编写代码并 import Selenium 的依赖

注意:刚开始学习,谷歌浏览器和火狐浏览器选一个配置即可,建议谷歌浏览器

Driver 的下载与配置步骤

  1. 下载浏览器对应的 driver,谷歌浏览器下载 chromedriver。
  2. 配置 driver 的环境变量。
  3. 重启命令行工具,验证是否配置成功。

1. chromedriver 的下载

2. chromedriver 环境变量配置 - Windows

2. chromedriver 环境变量配置 - Mac

  1. command + 空格 键 输入 ter,选择终端打开。

  2. 终端确认电脑的 bash 环境。

    echo $SHELL
    
  3. 打开环境变量配置文件。

    • 输出为 /bin/bash, 则创建 ~/.bash_profile 配置文件。

    • 输出为 /bin/zsh,则创建 ~/.zshrc 配置文件。

2. chromedriver 环境变量配置 - Mac

  1. 在配置文件中添加 CHROMEDRIVER_HOME,PATH 的变量追加 DRIVER 配置:

    #------------------ driver ------------------
    CHROMEDRIVER_HOME=/Users/gaigai/chromedriver/113.0.5672.63
    
    PATH=$PATH:${CHROMEDRIVER_HOME}/chromedriver
    
  2. 终端输入 source 配置文件名 使环境变量生效。

    source ~/.zshrc
    

3. 验证配置 chromedriver 是否成功

  • 重启命令行,输入:chromedriver --version
  • 出现 chromedriver 版本信息则配置成功

安装 Selenium 库

pip 命令来安装 Selenium 库:

pip install selenium

访问百度验证环境

  1. 创建项目。
  2. 编写代码打开百度首页。
import time
# 导入selenium 包
from selenium import webdriver

# 创建一个 Chromdriver 的实例。Chrome()会从环境变量中寻找浏览器驱动
driver = webdriver.Chrome()
# 打开网址
driver.get("https://ceshiren.com/")
# 强等10s 秒
time.sleep(10)

课堂练习

  1. 安装 Selenium。
  2. 配置 chromedriver。
  3. 编写访问ceshiren论坛的自动化脚本验证环境。

Selenium IDE

  • 介绍
  • 安装
  • 录制脚本并导出
  • 回放验证脚本

Selenium IDE 介绍

Selenium IDE 安装

  1. 下载 Selenium IDE CRX 文件 保存在熟悉的位置。

  2. 打开 Google Chrome 浏览器。

  3. 导航至 扩展程序 ,或从菜单中选择 更多工具 --> 扩展程序

  4. 请确保右上角的 开发者模式 选项已启用。

  5. 单击页面左上角的 加载已解压的扩展程序 按钮。

  6. 浏览到您保存 CRX 文件的文件夹并选择该文件夹。然后点击 选择文件夹 来安装。

  7. 完成安装后,Selenium IDE 图标将出现在 Chrome 的工具栏上。

录制场景

  1. 打开百度首页。
  2. 输入搜索关键字:Selenium。
  3. 找到 Selenium 官网 打开。
  4. 标题文本断言。
  5. 录制脚本导出。
  6. 脚本回放验证。

课堂练习

  1. 打开测试人论坛
  2. 输入搜索关键字:Selenium。
  3. 打开第一个帖子链接。
  4. 标题文本断言。
  5. 录制脚本导出。
  6. 脚本回放验证。

用例结构

自动化测试用例 作用
用例标题 测试包、文件、类、方法名称 用例的唯一标识
前提条件 setup、setup_class(Pytest);
BeforeEach、BeforeAll(JUnit)
测试用例前的准备动作,比如读取数据或者 driver 的初始化
用例步骤 测试方法内的代码逻辑 测试用例具体的步骤行为
断言 assert 实际结果 = 预期结果 断言,印证用例是否执行成功
后置动作 teardown、teardown_class(Pytest);
@AfterEach、@AfterAll(JUnit)
脏数据清理、关闭 driver 进程

Allure2 介绍

  • Allure 是由 Java 语⾔开发的⼀个轻量级,灵活的测试报告⼯具。
  • Allure 多平台的 Report 框架。
  • Allure ⽀持多语⾔,包括 python、JaveScript、PHP、Ruby 等。
  • 可以为开发/测试/管理等人员提供详尽的的测试报告,包括测试类别、测试步骤、日志、图片、视频等。
  • 可以为管理层提供高水准的统计报告。
  • 可以集成到 Jenkins 生成在线的趋势汇总报告。

Allure2 报告展示

github 地址:https://github.com/allure-framework/allure2

Allure2 安装

  1. 安装 Java,需要配置环境变量。
  2. 安装 Allure ,需要配置环境变量。
  3. 安装插件
    • Python:pip install allure-pytest
    • Java:Maven插件安装。

Allure2 下载与安装

  1. 先下载 Allure 源码包到本地。
  2. 配置环境变量:解压后将 bin 目录加入 PATH 环境变量。

详细安装步骤参考:https://ceshiren.com/t/topic/3386

Allure 环境验证

  • 执行命令验证环境
# 环境验证
allure --version

插件安装-Python

  • 安装 Python 插件 allure-pytest
    • 执行命令:pip install allure
# linux/mac
> pip list |grep allure
allure-pytest         x.xx.x

# windows
> pip list |findstr allure
allure-pytest         x.xx.x

生成测试报告流程

使用 Allure2 运行方式-Python

  • 使用 --alluredir 参数生成测试报告。
# 在测试执行期间收集结果
pytest [测试用例/模块/包] --alluredir=./result/  (—alluredir这个选项 用于指定存储测试结果的路径)

# 生成在线的测试报告
allure serve ./result

在企业中Web自动化测试常见痛点(部分)

  • 元素定位不到
  • 用例的可维护性问题
  • 用例执行效率低问题

【虚拟实验室】

  • 教学痛点:
    • 被测系统不稳定。
    • 授课的知识点无法和被测产品很好的融合。
    • 老师备课准备工作繁多。
    • 学生缺少切实的感受与体验。
  1. 提供一个稳定的,好用的被测系统。
  2. 被测系统需要和课程设计紧密结合。

虚拟实验室体验-元素定位不到

https://vip.ceshiren.com/#/ui_study

  • 接下来将以此系统为被测产品,让学生切实感受到元素定位不到的问题以及对应的解决方案与技术。