2 Star 3 Fork 0

dwyanelynn / ui_test_framework_2022

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

一、项目概述

该项目是基于pytest + selenium的web端UI自动化测试框架的demo,以稀土掘金为测试网站:https://juejin.cn/。

该项目总体分为两个目录(每个目录其实相当于IDEA的Module概念。):

  • pom(以pom模式演示的demo工程)
  • kdt(以关键字驱动模式演示的demo工程)

二、demo启动说明

注意:请先使用pipenv安装package。

pom

  1. 启动pom/run.py

kdt

  1. 启动kdt/run.py
    1. 注意,默认在kdt/pytest.ini只选择了执行test/test_excel.py
    2. 本项目test_excel.py生成的用例有14条,全部完成需105秒左右。如需挑选用例执行,可在kdt/pytest.ini的addopts使用-k参数。

三、pom目录讲解(pom模式)

pom目录中,主要目录为3个:

  • base:存放页面对象公共的selenium操作,被页面对象继承且调用。
  • pageobject:存放页面对象,被测试用例直接调用。
  • test:存放测试用例。

pom目录要介绍的东西不多,毕竟pom相对简单易懂。暂时设置的功能也不多,因为部分功能与kwt目录有重叠,所以大部分功能都设置在了kwt目录。所以本项目重点的kwt目录。

四、kwt目录讲解(关键字驱动模式)

项目功能描述

  1. 支持以excel文件来驱动用例的动态生成,也支持创建test_xx.py自己编写代码来执行。
  2. 支持日志记录。
  3. 集成allure测试报告。
    1. allure报告含有步骤说明、步骤的截图、日志记录
  4. 通过excel文件动态生成用例执行时,仍支持有选择地、灵活地执行所需用例。方式如下:
    1. 利用命令行参数-k
    2. 该参数不仅仅可以筛选用例方法名,也可以筛选用例方法使用@pytest.mark.parametrize时的ids,所以我们也可以通过excel文件的用例名称来筛选用例的执行
    3. 修改glob.glob("excel/**/test_*.xlsx", recursive=True)
    4. 利用@pytest.mark,即pytest.ini的markers
  5. 可指定用例方法是否使用同一浏览器。

项目启动逻辑概述

  1. 主程序运行,pytest.main()执行后启动pytest框架
  2. 执行pytest夹具。(通常会在这里启动driver,即浏览器)
  3. pytest扫描指定路径的测试用例文件。(test_xx.py)
    1. 在所有的test_xx.py文件,有一个特殊文件为test_excel.py,该文件会扫描指定目录下的所有excel文件,读取后根据文件动态生成用例方法。
    2. test_excel.py文件外,其它test_xx.py按照正常流程执行
  4. pytest执行测试用例方法。

概念与关系解读

excel文件与testsuite

excel文件中,一个sheet为一个suite,一个suite可存放多个用例

excel文件格式

img.png

img.png

img.png

五、一些说明

关于用例与浏览器的数量绑定关系

执行每个用例都要打开一个浏览器然后再关闭吗? 不一定。 pom和kdt中你都可以选择。你也可以选择每个类的所有用例都只使用浏览器。

如何实现?使用夹具。 目前的实现是定义多个启动driver的夹具,如driver夹具的范围为function级别、class_driver夹具的范围为class级别。

提醒:当使用数据驱动,每次执行用例,如果夹具的范围是fucntion,则每次基于数据驱动的执行用例方法都会执行方法级别的夹具。

关于滑动验证码破解

  1. 本项目也针对掘金的登录的滑动验证码进行了代码操作。但关于验证码识别,如果做不到成功率高,最好不要弄,除非你花钱找专业的。
  2. 掘金这个滑块验证码,有时当手动或自动将滑块拖到视觉上正中间时也验证失败。(不知道是否是验证失败次数多了,自动限制IP了)

空文件

简介

基于PO模式 / 关键字驱动模式的web UI自动化测试框架(Pytest+Selenium) 展开 收起
Python 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lin-haoqiang/ui_test_framework_2022.git
git@gitee.com:lin-haoqiang/ui_test_framework_2022.git
lin-haoqiang
ui_test_framework_2022
ui_test_framework_2022
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891