python pytest allure_python测试框架pytest和测试报告allure的联合使用-----测试套件

最近采用jenkins+python+pytest+allure写了一些自动化测试用例。碰到这样一种场景:如果我创建了2个测试任务,测试任务1包含2个测试用例test_a.py和test_b.py,测试任务2包含一个测试用例test_c.py。

一. 常规操作

假设我的代码目录结构有如下3个测试用例:

20191212235621769714.png

然后我在jenkins上面核心配置运行他们,并展示allure上面

20191212235621880059.png

20191212235621962085.png

note: 上面的\autotest\target\allure-results目录需要在本地jenkins目录中指定好。

build后发现如下结果:

20191212235622080241.png

test_a.py和test_b.py、test_c.py都属于同一个测试套example02.

二. 生成不同的suite,并且不同的suite分开展示

首先在准备如下目录结构:

20191212235622187656.png

然后修改jenkins配置如下:

20191212235622300930.png

20191212235622364403.png

这样生成的报告就有两个测试套了。

总结:pytest中的测试套感觉就是一个测试文件目录对应一个测试套。和testng中不一样,可以随便添加测试类放到一个suit.xml文件中。我们可以根据任务选取的不同,从而来生成不同的suite文件。

三. 通过新建test.py文件来存储要本次执行的所有用例

1.方法一:可以通过pytest.main方式

但是这种方式必须放在非test_开头或者_test结尾的py文件中,可以放在testrun.py文件中。比如有一个testrun.py:

import pytestif __name__ == ‘__main__‘:

pytest.main(["-s", "test_a.py", "test_b.py"])

这样testrun.py运行后就会执行test_a.py和test_b.py两个用例

2.方法二:通过新建pytest用例,来存储本次要执行的测试用例,比如test_all.py,在里头需要执行5个测试用例test_a.py,test_b.py,test_c.py,test_d.py,test_e.py

20191212235622456194.pngtest_all.py中的实现如下:

from src.example02.test_a import *

from src.example02.test_b import *

from src.example02.test_c import *

from src.example03.test_d import *

from src.example03.test_e import *

20191212235622585092.png

build结束后:

20191212235622648564.png

可以发现,test_all.py就是我们的测试套,它包含了5个测试用例。这就可以不同的测试任务对应不同的测试套,不同对的测试套下面可以放各种组合的用例。一个用例可以放在不同的测试套中。

原创文章,转载请注明出处!(写的是核心的配置、代码,如有不懂,欢迎留言交流)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那天,我无意间瞟了眼程序员的桌面……

全世界只有3.14 % 的人关注了数据与算法之美爱因斯坦曾说过“要是乱糟糟的桌面意味着杂乱无章的脑袋,那空白桌面意味着什么呢?似乎很多在某些领域拥有天赋的人都不喜欢干净整洁的桌面,包括乔布斯和扎克伯格也是,甚至有的人一看到整…

.Net Core with 微服务 - Ocelot 网关

上一次我们通过一张架构图(.Net Core with 微服务 - 架构图)来讲述了微服务的结构,分层等内容。从现在开始我们开始慢慢搭建一个最简单的微服务架构。这次我们先用几个简单的 web api 项目以及 ocelot 网关项目来演示下网关是如何配置&#x…

GNU ARM 汇编指令[转载]

http://blog.sina.com.cn/s/blog_59b189220100au1k.html 第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行…

android java 8_四个库,让你在 Android 中启用 Java 8 功能

Java 8 的推出引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时简化了各种设计模式的实现方式,是 Java 有史以来最重要的更新。自 Android N 之后,由于 Jack&Jill 编译工具链的存在&…

NET问答: 如何将十六进制的 #FFDFD991 转成 C# 中的 Color 类?

咨询区 viky:请问如何将一个16进制的 color code 转成 C# 中的 Color ?我的业务场景中需要从文件读取一个 hex color code,然后我需要将该 code 转成 System.Windows.Media.Color 实例,不知道 .NET Framework 中是否有相关的支持类…

60 Minutes专访李开复:泛人工智能可能永远实现不了

全世界只有3.14 % 的人关注了数据与算法之美尽管你听说过人工智能,但机器仍然无法像人类一样思考,但在过去的几年里,它们已经具备了学习的能力。突然之间,我们的设备睁开了眼睛和竖起了耳朵,汽车开始无人行驶。今天&am…

API之子窗口创建 (转)

子窗口的创建非常非常重要 步骤:1、新建窗口类,在窗口类中指名对应的自定义的窗口过程。窗口类类名要唯一,它 是各窗口类相互区别的标识。注意,类名或为静态变量,或为全局变量,因为程 序随时都用他们。…

java 支付宝 退款_Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)

最近一直在接触第三方,刚接入完支付宝的API做一下总结,个人能力薄弱有不对的地方望指教. 做的是一个小型电商项目,所以会接入第三方的支付和登入功能, 第一次接入第三方撸了很多官方文档.然后创建应用选择需要接入的功能,有些应用是需要签约的签约就好了审核蛮快的.以上应用申…

DB排行榜更新,.NET Core+MySQL成主流!

上图是DB-Engines数据库流行度最新排行榜,Oracle、MySQL、SQLServer虽几经下滑,然而还是遥遥领先的前三名。后起之秀PostgreSQL和MongoDB持续增长,然而在体量上还相差甚远,可以预见这些年,三大关系型数据库的主流地位是…

史上最惨锦鲤即将来袭!奖品堪比5年高考3年模拟!

全世界只有3.14 % 的人关注了数据与算法之美在锦鲤盛行的2018年我们超级数学建模也跟风来了一个“史上最惨锦鲤”活动为什么叫史上最惨锦鲤呢因为平常看一本数学书就已经头疼了何况我们奖品还是100本数学书试问除了学霸还有谁能承受这种殊荣巧的是最后的得主还真是一个学霸那就…

iOS开发  plist字段列表,很全

http://www.dreamingwish.com/dream-category/learning-note/iphone-learning-note http://www.dreamingwish.com/dream-2012/plist-field-list-it-is.html bundle字段 这些字段名都是XML中的名称,在xcode的属性编辑器中,名字并不相同 bundle目录中的属性…

java对象 序列化_Java基础之对象序列化

1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求…

NET问答: 到底是返回 null 好,还是 空集合 好?

咨询区 Omu:我是一个 C# 菜鸟,说实话,这个问题是一个非常困惑于我们这样初学者的一个问题,我想知道实际开发中的 最佳实践 应该是什么样的?回答区 user1228:如果要我选的话,我会用 空集合&#…

人工智能读心术

全世界只有3.14 % 的人关注了数据与算法之美对于许多无法发出声音的人来说,他们想说的话会通过某种信号隐藏在大脑中。人类无法直接破译这些信号。但是,最近有三个研究小组在“破译”这种大脑语言密码上取得了一定进展。Science杂志最新报道了哥伦比亚大…

非彼拉且数列的实现

递归算法实现&#xff1a; public static int F(int n) {if(n0 || n1){return 1;}else{return F(n-1)F(n-2)}} 迭代算法实现&#xff1a; public static int Fx(int n ) {int i 1;int j 1;int temp 0;if(n 0 || n1){return 1;}for(int k 2; k<n; k){temp i j;i j;j…

今日港股期货(港股期货今日交易动向)

港股期货收涨0.6% 首次突破31000点 今日港股期货大涨&#xff0c;形势一时看好。其中&#xff0c;恒生指数期货一度突破31000点关口&#xff0c;创出历史新高。分析人士表示&#xff0c;市场情绪积极&#xff0c;投资者对于全球经济复苏前景和中国经济增长的预期不断提高&…

春节特惠活动┃一张纸一幅图,竟然提高了10倍的学习和工作效率!?

▲数据汪特别推荐点击上图进入玩酷屋人类大脑的容量远远超出一般人的想象&#xff0c;时到21世纪的今天&#xff0c;我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式&#xff0c;而思维导图正是开发大脑中最有效的利器&#xff01;之前小木给大家推荐了一套基于…

java class文件 代码_java_基础——用代码编译.java文件+加载class文件

java_基础——用代码编译.java文件加载class文件java_基础——用代码编译.java文件加载class文件【简单编译的流程】package com.zjm.www.test;import java.io.IOException;import javax.tools.JavaCompiler;import javax.tools.JavaCompiler.CompilationTask;import javax.too…

WPF 记一个Popup踩坑记录

看名字就知道&#xff0c;它是一个弹出控件&#xff0c;顾名思义&#xff0c;我们可以用它来实现类似Combobox那种&#xff0c;点击后弹出下面选项列表的操作。记录&#xff1a;需求&#xff1a;有一个文本框 &#xff0c;鼠标点击后&#xff0c;弹出一个Popup。我编写了以下xa…

通过电话号码获取姓名 (+86或者飞信)

2019独角兽企业重金招聘Python工程师标准>>> /** * 通过电话号码获取姓名 (86或者飞信) */ /* public String getContactName(String phoneNum) { String contactName "";// 处理电话号码格式问题 if (phoneNum.length() > 11) {ContentResolver cr …