Python + Allure(报告)+ Jenkins(持续集成)接口自动化测试环境搭建

(这个是内部分享文档,侧重于测试报告的生成以及持续集成,至于接口框架的内部组织可以按照自己的想法来实现,有问题欢迎留言)

1.环境:
• 操作系统:windows 64位
• 软件环境:python3.4.4;jdk1.8;jenkins1.65

2.基本环境配置:
• python 添加到系统变量
• jdk环境配置(注意,jdk安装路径中不要包含括号、空号,否则执行allure命令时会报 此时不应有 \java\jdk1.8.0_111 错误,原因是allure的bat文件解析java home的时存没有处理)
• jenkins安装

3.第三方库安装
• pytest安装:在cmd命令下使用 pip install pytest ;
测试:在python 语言环境下import pytest 如果未报错表示安装成功

• pytest_allure_adaptor安装:在cmd命令下使用 pip install pytest_allure_adaptor
安装pytest_allure_adaptor注意事项
pytest_allure_adaptor依赖一些python的第三方库,其中lxml库在安装过程中容易出现 error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).导致整个安装失败。
原因:是python安装编译会调用本版本所用编译器进行编译。所以关键是找到正确的编译器以及commontools路径。2.7版本使用VS9编译,对于3.4版本,是使用VS10编译的.

解决办法:
1.在cmd命令下执行 pip install wheel
2.在http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下载对应的,一定要是和python版本+系统版本对应的的lxml*.whl文件(如:lxml-3.4.4-cp34-none-win_amd64.whl 注意:3.4.4表示lxml版本;cp表示python版本;amd64表示系统环境64位)
3.pip install lxml*.whl

• 其他库的安装:都可以使用pip install 库名称

• 下载allure执行工具:https://github.com/allure-framework/allure-core/releases/tag/allure-core-1.4.23 ;可以将allure执行工具的bin目录添加到系统变量path中。

4.生成allure所需要的测试结果文件
• 在cmd命令执行测试代码:py.test 测试用例目录 –alluredir=./allure-result
生成allure所需要的测试结果文件
py.test 测试用例目录 –alluredir=./allure-result
其中 –alluredir 表示生成测试结果保存路径; ./allure-result 表示当前路径下的allure-result文件下;在生成报告前会将报告存放路径下的文件夹清空

• 使用allure执行工具生成报告
使用allure工具生成报告
在allure执行工具的bin目录下对于linux与windows都有对应的脚本支持。
使用方法:
前提:执行测试后生成了对应xml结果文件,如 allure-result
生成测试报告:在cmd命令行中使用 allure generate allure-result 执行后会在该目录下生成allure-report文件,再使用allure report open 可以在本地查看报告.(备注:allure的报告需要有Server服务器apache、tomcat、jetty等才能被查看)
(在cmd命令下使用 allure help 可以查看详细的参数说明)

5.用例中使用allure(需要 import allure):
• 在报告中增加步骤显示,如下:使用 with pytest.allure.step(‘描述’): or with allure.step(‘描述’):
在报告中增加步骤显示

    @pytest.allure.testcase("http://www.qq.com")
    def test_steps_demo(self):
        with pytest.allure.step('step one'):
            driver = webdriver.Chrome()
            driver.get('http://www.baidu.com')
        with pytest.allure.step('step two'):
            driver.find_element_by_id('kw').send_keys('hello')
            driver.find_element_by_id('su').click()
            time.sleep(5)
        with pytest.allure.step('step three'):
            driver.save_screenshot("b.png")
            f = open('./b.png','rb').read()
            allure.attach('this is a img',f,allure.attach_type.PNG)
        with pytest.allure.step('step four'):
            driver.quit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

• 在报告中增加额外的信息:allure.attach(’arg1’,’arg2’,’arg3’):
arg1:是在报告中显示的名称
arg2:表示添加的内容
arg3:表示添加的类型(支持类型:HTML,JPG,PNG,JSON,OTHER,TEXTXML)
向报告中添加额外信息
allure.attach(‘this is a attach’,’llllllll llllll aaaaa’)
往报告中添加图片
f = open(‘./b.png’,’rb’).read()
allure.attach(‘this is a img’,f,allure.attach_type.PNG)

• 添加环境信息(注:建议放到一个用例中)
添加环境信息
allure.environment(report=’Allure report’,browser=’chrome’,version=’JiuYiBao2.0.6’)

• 利用Feature 和 Story 组织用例,如:一个大模块M 下包含几个小模块A、B、C ;可以将M 设置为Feature,A、B、C 设置为不同的Story
添加Featrue和Story

@allure.feature('Feature1')
@allure.story('Story1')
def test_mminor():
    assert Fals
  • 1
  • 2
  • 3
  • 4

6.整合jenkins
• jenkins 分别安装插件 Allure Jenkins Plugin 、HTML Publisher plugin
• 在系统设置中将JDK / Maven 等其他一些基本配置(建议jdk版本1.8)
• 在jenkins中添加allure执行工具

jenkins添加allure执行工具
1.先下上面提到的allure执行的压缩文件(allure-commandline.zip)
2.在jenkins的系统配置—–Allure Commandline —-去掉自动安装勾选框—-填写name及刚下载的文件夹的根目录路径
3.点击保存

• 新建job,在job中添加步骤 Allure report(Results:第一行表示xml文件的路径;第二行表示生成报告的路径)
目前做法
目前job的整个流程:
1.构建时,从svn上拉取最新的测试代码
2.执行测试脚本并且生成allure需要xml结果文件
3.通过Allure report生成测试报告

4.设置问题追踪
(在Allure Report 下选择增加:Key: allure.issues.tracker.pattern Value: http://tracker.company.com/%s)

• 由于jenkins1.5.2以上版本对插件的安全性做了限制必须要在jenkins —统管理–脚本命令行中执行代码
执行权限代码
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “default-src ‘self’; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; style-src ‘self’ ‘unsafe-inline’;”)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个接口自动化测试框架可以使用以下工具和技术: 1. Python:作为主要开发语言,可以使用Python来编写测试脚本和测试用例。 2. Pytest:一款功能强大的Python测试框架,可以用于编写和运行测试用例,并提供丰富的断言和报告功能。 3. Allure:一个开源的测试报告生成工具,可以生成美观且易于理解的测试报告,支持多种语言和框架。 4. Git:版本控制工具,用于管理和同步测试代码。 5. Jenkins:一个持续集成和持续交付工具,可以自动化运行测试用例并生成测试报告。 6. Docker:容器化平台,可以用于创建和管理测试环境,提供一致的运行环境。 下面是搭建接口自动化测试框架的步骤: Step 1: 创建项目结构 在本地创建一个目录作为项目根目录,然后在根目录下创建以下子目录: - `tests`:存放测试脚本和测试用例; - `reports`:存放测试报告; - `config`:存放配置文件; - `utils`:存放一些工具类和函数。 Step 2: 编写测试用例 在`tests`目录下编写测试脚本和测试用例。可以使用Pytest来组织和执行测试用例,使用断言来验证测试结果。 Step 3: 配置Allure报告 在`config`目录下创建一个`pytest.ini`文件,配置Allure报告的相关参数,例如报告保存路径、报告标题等。 Step 4: 运行测试用例 使用Pytest运行测试用例,并生成Allure报告。可以使用命令行或者集成到Jenkins中进行自动化执行。 Step 5: 集成Git和Jenkins 将项目代码托管到Git仓库中,并在Jenkins中配置相关任务,使其在代码提交后自动触发测试用例的运行和报告的生成。 Step 6: 创建Docker镜像(可选) 使用Docker将测试环境打包成镜像,方便部署和维护。 一些可能出现的问题和解决方法: 1. 安装依赖:在搭建过程中,可能会遇到安装依赖包的问题。可以使用pip来安装所需的Python包,并注意版本兼容性。 2. 配置问题:在配置AllureJenkins时,可能会遇到配置不正确或缺少必要参数的问题。可以参考官方文档或者搜索解决方案来解决这些问题。 3. 报告生成失败:如果生成Allure报告失败,可以检查相关依赖是否安装正确,以及路径和权限是否设置正确。 4. 测试环境问题:如果测试用例在不同环境中运行时出现问题,可以考虑使用Docker来创建一致的测试环境,或者在测试用例中添加环境适配代码。 相关问题: 1. 除了Allure,还有哪些常用的测试报告生成工具? 2. 如何在Pytest中使用断言来验证测试结果? 3. 如何在Jenkins中配置任务来触发自动化测试? 4. 除了接口自动化测试,还有哪些类型的自动化测试可以使用Python实现?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值