前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11.UI自动化测试框架搭建-编写执行脚本入口

11.UI自动化测试框架搭建-编写执行脚本入口

作者头像
zx钟
发布2022-03-29 16:40:44
4280
发布2022-03-29 16:40:44
举报
文章被收录于专栏:测试游记测试游记

执行测试的时候使用的语句是

代码语言:javascript
复制
stage('执行测试'){
   steps{
       dir("${env.WORKSPACE}/src/cases/") {
       sh ""
              sh '''
              python3 allure_debug.py
              exit 0
              '''
                  }
          }
}

所以还需要一个src/cases/allure_debug.py文件来执行整个测试套

编写allure_debug.py

第三方模块路径添加到环境变量

在项目中导包使用的语句为from src.xxx import xxx

这种导入方式在Pycharm中可以正常执行,但是在命令行执行的时候会报错,因为对于命令行的环境来说,它不知道你的src所在的路径,所以需要把它加到环境变量中

代码语言:javascript
复制
import os
import sys

BASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 
sys.path.append(BASE_PATH)
sys.path.append(os.path.join(BASE_PATH, 'src'))

通过ossys模块找到文件路径并添加到环境变量中

获取需要执行的用例

有两种方式获取要执行的用例

  1. 根据jenkinsfile中的case的内容
  2. 当前文件夹下全部符合pytest执行条件的测试文件
代码语言:javascript
复制
from src.utils.constant import CASES

if CASES:
    test_cases = CASES.split('\n')

通过切割\n就可以拿到jenkinsfile中填写的测试用例了

使用pytest.main执行

https://docs.pytest.org/en/7.0.x/reference/reference.html?highlight=main#pytest.main

pytest有很多的命令可以使用,可以使用pytest -h查看

这次用到

-s :shortcut for --capture=no.

-v:increase verbosity.

--durations=0:show N slowest setup/test durations (N=0 for all)

--alluredir:Generate Allure report in the specified directory (may not exist)

拼接一个pytest执行命令来执行

代码语言:javascript
复制
if CASES:
    test_cases = CASES.split('\n')
    main_list = [
        '-s',
        '-v',
        *test_cases,
        '--durations=0', '--clean-alluredir',
        '--alluredir', f'{REPORT_PATH}/allure_results'
    ]
else:
    main_list = [
        '-s',
        '-v',
        '--durations=0', '--clean-alluredir',
        '--alluredir', f'{REPORT_PATH}/allure_results'
    ]

判断是否需要并发

代码语言:javascript
复制
if CONCURRENT != '否':  # 是否并发执行
    main_list.append('-n')
    main_list.append(CONCURRENT)
    main_list.append('--dist')
    main_list.append('loadfile')

运行

代码语言:javascript
复制
pytest.main(main_list)

本地生成Allure报告查看

判断当前不是在jenkins执行中

mac系统需要给{ALLURE_TOOL_PATH}/allure文件添加运行权限

代码语言:javascript
复制
cd xxx/allure
chmod 777 allure
代码语言:javascript
复制
if not os.getenv("BUILD_URL"):
    os.system(f"{ALLURE_TOOL_PATH}/allure serve {REPORT_PATH}/allure_results")  # 本地执行
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编写allure_debug.py
    • 第三方模块路径添加到环境变量
      • 获取需要执行的用例
        • 使用pytest.main执行
          • 判断是否需要并发
            • 运行
            • 本地生成Allure报告查看
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档