码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于Python+Pytest+Playwright+BDD的UI自动化测试框架


    文章目录

      • 一、框架介绍
      • 二、实现功能
      • 三、依赖库
      • 四、安装教程
      • 五、如何创建用例
        • 1. 修改配置文件 `config.settings.py`
        • 2. 修改全局变量,增加测试数据 `config.global_vars.py`
        • 3. 删除框架中的示例用例数据
        • 4. 编写测试用例
          • 1. 在`test_features`目录新建一个`.feature`文件,按照BDD模式编写测试用例
          • 2. 基于`.feature`文件, 在 `test_cases`目录下新建一个`test_*py`文件,实现测试用例
      • 六、运行自动化测试
        • 1. 激活已存在的虚拟环境
        • 2. 运行
      • 七 、初始化项目可能遇到的问题
      • 查看源码

    一、框架介绍

    本框架是基于Python+Pytest+Playwright+BDD的UI自动化测试框架。

    • 测试社区地址: https://www.gitlink.org.cn/zone/tester
    • 入群二维码:https://www.gitlink.org.cn/floraachy/apiautotest/issues/1

    对于框架任何问题,欢迎联系我!

    二、实现功能

    • 支持通过命令行指定浏览器,选择需要运行的浏览器。
    • 支持通过命令行指定运行环境,实现环境一键切换,解决多环境相互影响问题。
    • 采用loguru管理日志,可以输出更为优雅,简洁的日志
    • 钉钉、企业微信通知: 支持多种通知场景,执行成功之后,可选择发送钉钉、或者企业微信、邮箱通知
    • 使用pipenv管理虚拟环境和依赖文件,可以使用pipenv install一键安装依赖包。

    三、依赖库

    pytest = "==6.2.5"
    requests = "==2.26.0"
    loguru = "*"
    pytest-rerunfailures = "*"
    faker = "*"
    yagmail = "*"
    pywinauto = "*"
    allure-pytest = "*"
    requests-toolbelt = "*"
    pytest-bdd = "*"
    sttable = "*"
    playwright = "*"
    pytest-playwright = "*"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    四、安装教程

    1. 通过Git工具clone代码到本地 或者 直接下载压缩包ZIP
    https://gitlink.org.cn/floraachy/uiautotest_playwright.git
    
    • 1
    1. 本地电脑搭建好 python环境,我使用的python版本是3.9

    2. 安装pipenv

    # 建议在项目根目录下执行命令安装
    pip install pipenv
    
    • 1
    • 2
    1. 使用pipenv管理安装环境依赖包:pipenv install (必须在项目根目录下执行)
       注意:使用pipenv install会自动安装Pipfile里面的依赖包,该依赖包仅安装在虚拟环境里,不安装在测试机。
    
    • 1

    如上环境都已经搭建好了,包括框架依赖包也都安装好了。

    五、如何创建用例

    1. 修改配置文件 config.settings.py

    1)确认RunConfig的各项参数,可以调整失败重跑次数rerun, 失败重跑间隔时间reruns_delay,当达到最大失败数,停止执行max_fail
    2)确认测试完成后是否发送测试结果,由SEND_RESULT_TYPE控制,并填充对应邮件/钉钉/企业微信配置信息
    3)指定日志收集级别,由LOG_LEVEL控制

    2. 修改全局变量,增加测试数据 config.global_vars.py

    1. ENV_VARS[“common”]是一些公共参数,如报告标题,报告名称,测试者,测试部门。后续会显示在测试报告上。如果还有其他,可自行添加
      2)ENV_VARS[“test”]是保存test环境的一些测试数据。ENV_VARS[“live”]是保存live环境的一些测试数据。如果还有其他环境可以继续增加,例如增加ENV_VARS[“dev”] = {“host”: “”, …}

    3. 删除框架中的示例用例数据

    1)删除 test_cases目录下所有test开头的文件
    2)删除test_features目录下所有文件
    注意:如果想先体验一下框架,可以先保留我写的示例用例。

    4. 编写测试用例

    1. 在test_features目录新建一个.feature文件,按照BDD模式编写测试用例
    2. 基于.feature文件, 在 test_cases目录下新建一个test_*py文件,实现测试用例

    此处需要对BDD知识有一定的了解,可以参考文章:Pytest-BDD行为驱动开发测试

    六、运行自动化测试

    1. 激活已存在的虚拟环境

    • (如果不存在会创建一个):pipenv shell (必须在项目根目录下执行)

    2. 运行

    在pycharm>terminal或者电脑命令窗口,进入项目根路径,执行如下命令(如果依赖包是安装在虚拟环境中,需要先启动虚拟环境)。
      > python run.py  (默认在test环境运行测试用例, 报告采用allure)
      > python run.py -m demo 在test环境仅运行打了标记demo用例, 默认报告采用allure
      > python run.py -env live 在live环境运行测试用例
      > python run.py -env=test 在test环境运行测试用例
      > python run.py -browser webkit 使用webkit浏览器运行测试用例
      > python run.py -browser chromium webkit 使用chromium和webkit浏览器运行测试用例
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:

    • 如果pycharm.interpreter拥有了框架所需的所有依赖包,可以通过pycharm直接在run.py中右键运行

    七 、初始化项目可能遇到的问题

    • 测试机安装的是python3.7,但是本框架要求3.9.5,怎么办?
    • 无法安装依赖包或者安装很慢,怎么办?

    查看源码

    • git地址: https://gitlink.org.cn/floraachy/uiautotest_playwright.git
    • 项目参与者: floraachy
    • 个人主页: https://www.gitlink.org.cn/floraachy
  • 相关阅读:
    .NET CORE 授权
    【Python】多进程 AttributeError: Can‘t pickle local object
    Python3对象序列化,即将Python对象从内存中储存为本地文件、从本地文件中加载Python对象(持续更新ing...)
    C语言运算符优先级一览表
    java八股文易错点(持续更新......)
    【C++编程能力提升】
    【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱机运行
    一些网络的常见问题
    TCP为什么是三次握手
    Win10鼠标右键菜单不显示怎么办?
  • 原文地址:https://blog.csdn.net/FloraCHY/article/details/133028232
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号