Pytest+Allure初体验

转自:https://mp.weixin.qq.com/s/zF_YIPqpS_nMP4K8KTLYGw

 最近团队的虚拟小组在做ui自动化测试,使用的框架有pytest框架和allure框架,结合这两个框架,最终可以生成规范、格式统一、美观的测试报告。

下面简单介绍一下~

01

pytest介绍

pytest是python的第三方测试框架,是基于unittest的扩展框架。

 

根据pytest的官方网站介绍,它具有如下特点:

1、非常容易上手,入门简单,文档丰富

2、能够支持简单的单元测试和复杂的功能测试

3、支持参数化

4、 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败

5、支持重复执行失败的case

6、支持运行由nose, unittest编写的测试case

7、具有很多第三方插件,并且可以自定义扩展

8、方便的和持续集成工具集成

02

如何编写pytest测试用例

示例如下:

 

通过执行测试文件的方法(在test_py.py所在目录下执行pytest或者pytest -q(q是quiet的简拼),会寻找当前目录及其子目录下以test开头的py文件或者以test结尾的py文件。

 

找到文件后,在文件中找到以test开头函数并执行)。

 

执行上面的测试:

测试结果中可以看到,该测试共执行了两个测试样例,一个失败一个成功。

 

同样,我们也看到失败样例的详细信息,和执行过程中的中间结果。

 

通过上面的实例,我们发现编写pytest测试样例非常简单,只需要按照下面的规则:

·         测试文件以test_开头(以_test结尾也可以)

·         测试类以Test开头,并且不能带有 __init__ 方法

·         测试函数以test_开头

·         断言使用基本的assert即可

 

可能有些同学会问为什么要使用断言。

 

不管是功能测试,自动化测试,还是单元测试。一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果。测试的成功与否就是拿实际的结果与预期的结果进行比较。这个比的过程实际就是断言(assert)。

 

那么接下来再简单介绍一下Allure 

03

Allure介绍

Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架。

 

Allure简单易用,易于集成。

还支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。

 

我们本次使用到的是基于Pytest框架集成Allure。

在pytest中使用Allure,需要使用一个Pytest的插件pytest-allure-adaptor

 

pytest-allure-adaptor的安装步骤如下:

然后从

https://bintray.com/qameta/generic/allure2下载allure,解压到本地后,将allure执行工具的bin目录添加到系统变量path中。

 

同时也应该进行jdk环境配置

(注意,jdk安装路径中不要包含括号、空号,否则执行allure命令时会报错) 

 

在测试脚本中,怎么添加allure特性呢?

 

 首先需要 import allure,示例如下:

从上面简单的例子当中,可看到,使用了Allure的几个特性:

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

b、with pytest.allure.step(‘描述’) ,在报告中增加步骤显示

c、allure.attach  用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

关于Allure的更多特性,大家可在官网学习,这里就不一一介绍了。

04

Allure测试报告的生成

怎么通过上面的测试脚本,生成allure所需要的测试结果文件呢? 

在cmd命令行执行测试代码:

py.test 测试用例目录 –alluredir=./allure-result 
生成allure所需要的测试结果文件 。

其中 –alluredir 表示生成测试结果保存路径; ./allure-result 表示当前路径下的allure-result文件下。

然后通过命令,生成测试报告

在cmd命令执行测试代码:allure serve 测试用例目录

生成的测试报告如下:

首页

首页中展示了本次测试的测试用例数量,成功用例、失败用例、跳过用例的比例,ENVIRONMENT,SUITES,FEATURES BY STORIES等基本信息。

Behaviors

点击一下FEATURES BY STORIES,将进入Behaviors页面,这个页面按照FEATURES和 STORIES展示测试用例的执行结果: 

从这个页面可以看到“日历控件功能模块”这个FEATURES包含的七个STORIES的测试用例执行情况。

Suites

点击Suites区域下面的任何一条Suite,都将进入Suites页面。

在Suites页面上点击任何一条测试用例,Suites页面的右侧将展示这条用例的详细执行情况。

 

从这个页面可以看到测试用例执行的具体步骤,以及每个步骤的执行结果、测试用例失败原因。

结语

将Allure与Pytest测试框架相结合,生成Allure格式的测试报告就介绍完了。

posted on 2018-11-29 16:13  一生二  阅读(3575)  评论(0编辑  收藏  举报