Pytest单元测试框架——Pytest+Allure+Jenkins的应用

1、简介

  pytest+allure+jenkins进行接口测试、生成测试报告、结合jenkins进行集成。html

  pytest是python的一种单元测试框架,与python自带的unittest测试框架相似,可是比unittest框架使用起来更简洁,效率更高java

  allure-pytest是python的一个第三方库。用于链接pytest和allure,使它们能够配合在一块儿使用。python

  allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果。该json格式结果能够用于后续适用allure生成html结果。git

2、安装  

  一、安装pytest,命令行或终端中输入github

1 pip install pytest

  二、安装allure-pytest,安装成功json

1 pip install allure-pytest

  allure-pytest安装成功后截图以下。浏览器

  三、下载安装JDKoracle

  官方下载:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html框架

  安装与配置不做阐述请谅解  编辑器

  四、下载安装Jenkins

  官方下载:https://www.jenkins.io/

  安装与配置不做阐述请谅解

3、下载Allure并配置

  下载allure并配置

  一、allure官网下载:https://github.com/allure-framework/allure2/releases

  以下图所示

  二、allure2下载下来是一个zip的压缩包,咱们要解压至本身的文件目录下(可解压放至项目的测试用例下或python安装目录下),本身可找到文件便可。

  三、打开allure2目录,找到bin目录,复制bin文件目录, 而后进行环境变量的配置,设置环境变量的目的就是让系统不管在哪一个目录下均可以运行allure2。

  四、环境变量设置:(桌面——个人电脑——右键属性——高级系统配置——环境变量——系统变量——Path——编辑环境变量——把咱们上面复制的目录路径新增至环境变量中便可)

  设置环境变量,以下图所示。

 

  五、配置好后,打开cmd终端,输入allure,出现如下帮助文档,就说明配置成功了。

 4、Allure装饰器描述

  Allure装饰器

 5、Pytest+Allure的应用

  上述咱们讲了一些理论的知识,下面咱们就来实战练习一下吧。进一步理解Pytest+allure如何结合应用的。

  一、新建testcase文件夹,用来存放测试用例,新建test_Demo.py文件,做为pytest的具体测试用例文件。在test_Demo.py文件中输入如下代码。

 1 # test_Demo.py
 2 # Creator:wuwei
 3 # Date:2020-06-09
 4 
 5 import pytest  6 import requests  7 import allure  8 import sys  9 sys.dont_write_bytecode = True 10 
11 @allure.epic('测试描述'.center(30, '*')) 12 @allure.feature('测试模块') 13 @allure.suite('测试套件') 14 class TestPytestOne(): 15     @allure.story('用户故事描述:用例一') 16     @allure.title('测试标题:用例一') 17     @allure.description('测试用例描述:用例一') 18     @allure.testcase('测试用例地址:https://www.baidu.com/') 19     @allure.tag('测试用例标签:用例一') 20     def test_one(self): 21         print('执行第一个用例') 22         assert 1 == 1
23 
24     @allure.story('用户故事描述:用例二') 25     @allure.title('测试标题:用例二') 26     @allure.description('测试用例描述:用例二') 27     @allure.testcase('测试用例地址:https://www.sogou.com/') 28     @allure.tag('测试用例标签:用例二') 29     def test_two(self,action): 30         print('执行第二个用例') 31         assert True == True 32 
33 # pytest运行
34 if __name__ == "__main__": 35     pytest.main(['-s', '-v', 'test_Demo.py', '-q', '--alluredir', '../reports'])

  二、咱们再来建立一个conftest.py,conftest用来共享数据及不一样层次之间共享使用的文件,测试用例的前置和后置中通常均可以用到的。

 1 # conftest.py
 2 # Creator:wuwei
 3 # Date:2020-06-09
 4 
 5 import pytest  6 import sys  7 sys.dont_write_bytecode = True  8 
 9 @pytest.fixture() 10 def action(): 11     print("测试用例开始".center(30, '*')) 12     yield
13     print("测试用例结束".center(30, '*'))

  三、运行test_Demo.py文件,test_Demo文件中已经pytest+allure的结合,可查看allure的运行结果,可看出在根目录中生成了一个reports文件夹,其中生成了测试报告的json文件,这里面的json文件可经过allure生成html的测试报告。
  运行test_Demo.py,终端显示以下图所示。

   生成的Json格式的测试报告,以下图所示。

   四、使用allure将json文件生成html的测试报告,定位至项目文件根目录下,运行如下命令,会在项目根目录下生成一个名为allure_reports的文件夹,用来存放html测试报告。命令下如所示。

1 allure generate reports -o allure_reports/

  成功运行allure,结果以下图所示。

  项目根目录下的allure_reports文件,存放的是allure生成的测试报告。可看出文件下有一个HTML文件,可经过Python的编辑器Pycharm来打开该HTML文件(测试报告),或可经过allure命令来打开该HTML,展现HTML测试报告。以下所示。

  测试报告文件,HTML测试报告以下。

  allure命令打开HTML测试报告。命令以下所示。

1 allure open allure_reports/

  以下图所示。

   打开生成的HTML测试报告以下图所示。

 6、Pytest+Allure+Jenkins的应用

  一、Jenkins插件网站上下载allure插件最新版本:

    http://mirrors.jenkins-ci.org/plugins/allure-jenkins-plugin/

  二、Jenkins的安装我已经在Postman+Newman+Git+Jenkins的篇章中讲过了,没看小伙伴能够看一下那篇文章。确认Jenkins服务是否开启。确认开启后,在浏览器中输入:http://localhost:8080/,进入Jenkins配置页面。

  三、http://localhost:8080/,登陆Jenkins的页面,在管理Jenkins——插件管理——高级中找到上传插件。将(1)步骤中下载的.hpi的文件上传至jenkins上。

  上传安装好的allure-jenkins-plugin的插件,安装完成并成功,是蓝色圆点显示,因我已经安装过一次,会提示已经安装,重启Jenkins便可生效。(注意:不是关闭浏览器从新打开,而是重启Jenkins服务

  四、全局变量中配置allure路径与JDK的路径,

  配置JDK安装的路径,以下图所示。

  配置allure安装的路径,以下图所示。

  五、新建Item,配置构建后的allure测试报告生成。这里配置Pytest执行完成以后,生成的allure文件所在的目录位置。

  项目中生成allure的json测试报告的位置。需与下面构建后操做中的Results的Path文件一致。

  构建后操做的allure生成测试报告的配置,以下图所示

  六、配置构建命令。就是上述在cmd中运行项目时的命令。以下图所示。

注意:运行后发现有报错。“Build step 'Execute Windows batch command' marked build as failure”,解决方案,在运行项目的命令后添加exit 0。以下图所示。

  七、修改运行命令后咱们再来运行一下。咱们可发现运行后,allure里面没任务数据。由于咱们还没设置运行的项目路径。设置工做空间,打开工做空间目录,将咱们的项目复制到jenkins的工做目录中。

  咱们可将代码传至GitHub上,在Jenkins中设置相关Github项目的配置,也可进行Jenkins部署。我在Postman+Newman+Git+Jenkins这篇博客里就应用到了。有兴趣的可参考看看这篇Jenkins如何Git项目。在这里咱们使用本地项目来部署。

  测试报告无数据由于工做空间里面没有项目配置。

  复制项目至Jenkins工做空间的目录中。

  八、添加项目后,咱们再运行一下,蓝点则为运行成功,可看到后面已经生成了allure的测试报告了。可直接点击后面的alluree图标跳转至HTML的测试报告。以下图所示。

  allure生成的HTML测试报告

8、总结

  上述咱们聊了下pytest+allure+jenkins如何结合集成一块儿使用的,本地启动jenkins,运行项目,调用allure生成测试报告。也简单的作了一个小Demo。后期我将结合Requests接口测试和seleniumWeb测试应用至具体项目中。

相关文章
相关标签/搜索