Web 自动化实战一

霍格沃兹测试开发学社 ceshiren.com

Web自动化测试的价值

功能测试场景

UI 自动化测试场景

什么时候可以做UI自动化测试

UI自动化测试用例如何编写

  • 业务流程不频繁改动
  • UI 元素不频繁改动
  • 需要频繁回归的场景
  • 核心场景等

Web自动化测试相关技术

  • Selenium:支持多语言,行业内最火最主流
  • JUnit5/Pytest:最好用最全面的单元测试框架
  • Allure:测试报告

Selenium 架构

用户端自动化测试学习路线

点点点

剧情:企业微信添加成员(web端)

1. 登录
2. 进入首页页面
3. 点击"添加成员"按钮
4. 填写成员信息
5. 点击"保存"按钮
6. 进入通讯录页面
7. 人工验证

自动化测试用例设计

  • 参照手工用例怎么设计思路
自动化场景:企业微信添加成员(web端)

1. 登录
2. 进入首页页面
3. 点击"添加成员"按钮
4. 填写成员信息
5. 点击"保存"按钮
6. 进入通讯录页面
7. 验证==>断言

实战练习1(30分钟)

  • cookie植入,企业微信登录(预备)

1. 扫码写入cookie

步骤:

  • 1、设置一下全局变量,Chromedriver如果没有配置全局变量则会报错
  • 2、打开Chrome浏览器
  • 3、访问企业微信登录页面
  • 4、扫码过程
    • 方式一:强制等待扫码
    • 方式二:显示等待扫码,时间更加灵活
  • 5、扫码后cookie保存到本地yaml文件

2. cookie解读

  • keyvalue结构
  • 对应每个字段含义:
    - name: "wwrtx.refid" #cookie的名称
    value: "10349750992271972" #cookie的值
    path: "/" #cookie的存储路径
    domain: ".work.weixin.qq.com" #对应域名路径,只有相同域名才会覆盖cookie,其他域名不会把cookie带过去
    expiry: null #到期时间戳
    sameSite: null #同一站点
    secure: false
    httpOnly: true #只能通过http访问
    

3.cookie文件读取登录

  • 直接读取项目的yaml文件

cookie读取判断时间

  • 1、读取cookieyaml文件
  • 2、从cookie里面获取非空的时间戳列表,如果是null则不需要关注
  • 3、cookie使用规则
    • (当前时间戳 - cookie获取的时间戳) < 7200s ,可直接使用cookie文件
    • 注意⚠️:
      • 第一个时间戳为cookie获取的一年以后的时间戳,需要进行计算转换。

优化代码

  • 1、设置一下全局变量,Chromedriver如果没有配置全局变量则会报错
  • 2、打开Chrome浏览器
  • 3、访问企业微信登录页面
  • 4、获取当前的url地址
  • 5、cookie判断
    • cookie.yaml文件获取失效时间戳
    • cookie获取的时间戳:第1个失效时间戳「一年后」 - 31536000000L
    • (当前时间戳 - cookie获取的时间戳) < 7200s
      • 直接使用cookie文件
      • 否则,扫码获取cookie
  • 6、扫码过程
    • 方式一:强制等待扫码
    • 方式二:显示等待扫码,时间更加灵活
  • 7、扫码后cookie保存到本地yaml文件
  • 8、扫码后要重新加载cookie文件
  • 9、写cookie到浏览器
  • 10、刷新浏览器
  • 11、获取浏览器当前的URL
  • 12、判断输出是否登录成功

实战练习2(30分钟)

  • 题目2:企业微信添加成员(线性脚本)