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

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’;”)