您的位置:首页 > 编程语言 > Python开发

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

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

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()


• 在报告中增加额外的信息: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


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’;”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: