pytest测试实战pdf_Pytest+Allure美化测试报告

今日推荐音乐:我最爱的霉霉

在学习pytest的时候,生成的html报告觉得实在不是很美观,查到资料有很多测试报告的第三方插件,不仅美观而且查看测试用例也很方便,那我们一起来学习下吧~

0 1

参考案例

要学习一个新技术,最快捷的方法就是去网上找一个demo先练习,然后结合自己的项目练手。于是我找了网上案例并适当修改了下,test_report.py文件如下:

import allure@allure.feature('天气预报功能')class TestReportStyle(object):    @allure.story('查询上海天气')    def test_search_weather(self):        login('小明', '123')        with allure.step('输入城市'):            allure.attach('上海')        with allure.step('点击查询'):            pass        with allure.step('查询结果'):            allure.attach('查询成功', '期望结果')            allure.attach('查询失败', '实际结果')            assert 'success' == 'failed'    @allure.story('查询下周天气')    def test_search_nextweek(self):        pass@allure.step('用户登录')def login(user, pwd):    print(user, pwd)

Allure用法说明:

@allure.feature('XXX'): 测试用例需求,就相当于告诉报告这个脚本主要功能是做什么的;

@allure.story('XXX'): 测试场景,就相当于一个测试用例;

with allure.step('XX'): 测试步骤;

with allure.attch('XX'): 测试数据,用户输入的测试内容或者截图等信息;

@allure.step('XX'): 将函数作为测试步骤放入测试报告中;

0 2

结合项目实战

 结合上一篇请求豆瓣电影的小demo,做一个优化。

import yamlimport allureimport pytestimport requestsfrom utils import comm_functiondef get_test_data(filepath):    case = []  # 存放测试用例名    requests = []  # 存放http请求对象    validate = []  # 存放断言    with open(filepath, encoding='utf-8') as f:        data = yaml.load(f.read(), Loader=yaml.SafeLoader)        case.append(data.get('test'))        requests.append(data.get('requests'))        validate.append(data.get('validate'))        params = zip(case, requests, validate)        return case, paramscases, parameters = comm_function.get_test_data('D:/workFile/test/pytest_demo/data/test_movie.yaml')list_params = list(parameters)print(list_params[0][1])@allure.feature('豆瓣电影列表测试用例')  # 测试场景class TestInTheaters(object):    @allure.story('查询电影列表')  # 测试用例    @pytest.mark.parametrize('case,http,validate', list(list_params), ids=cases)    def test_in_theaters(self, case, http, validate):        host = 'http://api.douban.com'        with allure.step('请求豆瓣网-上映的电影'):  # 测试步骤            allure.attach('start', validate['count'])   # 测试数据            allure.attach('count', validate['start'])  # 测试数据            res = requests.request(http['method'], url=host+http['path'], headers=http['headers'],                               params=http['params'])        response = res.json()        assert response['count'] == validate['count']        assert response['start'] == validate['start']        assert response['title'] == validate['title']

代码运行:

第一步:将测试数据打包

pytest 脚本目录 --alluredir 存放报告目录

第二步:生成测试报告

allure generate -o 运行结果目录 存放报告目录 --clean # 清空

查看结果:

875757510bac396d03f23420dd4b192b.png

e2acfa0f5953e9faa1bbebbd78ffdc05.png

6df1fb118a1cb1d5f1f1599868c4c5fa.png

遇到的坑:

1、手机端安装的allure,在pycharm中提示没有allure命令。

解决办法:

pycharm的teminal中,pip list查看当前Python下可用的插件,没有的话安装下

2、生成过一次的测试报告,再次运行的时候会出现以前的测试情况,明明我clean了啊?

解决办法:

我打包测试数据的时候,运行多次,那我的测试数据当前会出现重复啦!删除下重新运行就可以了。

pytest相关文章推荐:

1、初步了解Pytest测试框架

2、pytest+yaml实现接口自动化

bb2cc5d0a9ca1c7a6245da6583fcb13a.png

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

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

相关文章

java 递归_采用递归算法求解迷宫问题(Java版) | 附代码+视频

递归算法能够解决很多计算机科学问题,迷宫问题就是其中一个典型案例。本篇教程我们将采用递归算法求解迷宫问题,输出从入口到出口的所有迷宫路径。01用递归算法解决迷宫问题迷宫问题在《数据结构教程》第3章介绍过,设mgpath(int xi&#xff0…

挂机宝装mysql_挂机宝安装

万安挂机宝下载后安装包里有介绍.proxydroid使用说明以雷电模拟器为例永久记住选择 允许 (安卓手机 需要 root 方可使用)设置 账号密码启动即可 下面是详细翻译说明一、下载ProxyDroid。二、对ProxyDroid进行配置(基本配置:)(1) Auto Setting不勾选,我们…

python爬虫是数据挖掘吗_爬虫属于数据挖掘 python为什么叫爬虫

数据挖掘和爬虫有区别吗?数据挖掘和爬虫有很大的区别。数据挖掘过程应用于爬虫的可能性并不是特别大,但所占比例相对较大。但是使用爬虫,一般来说,爬虫都是爬到别人的网站上的,而且有些规则。因此,从数据挖…

通过代理上网 固定ip_浅析局部代理IP与全局代理IP的使用说明

经常有人问,如何设置局部代理IP,如何设置全局代理IP,今天我们一起来看看。何谓局部代理IP,顾名思义,改变局部的IP,不影响其他程序软件运行的使用IP;所谓全局代理IP,就是改变整个客户…

如何检查私钥和公钥是否配对_如何检查家具是否有臭虫

如果您购买了二手家具,或者家具使用好多年了,那么由于家庭环境等问题,难免会出现臭虫!臭虫可以通过许多不同的方式进入您的房屋,但是最常见的方法之一是您的二手家具。关于臭虫首先,让我们从臭虫入门。这些…

利用expect安装mysql_linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解

一、遇到的问题我们使用过mysqldump都知道,使用该命令后,需要我们手动输入 mysql的密码,那么我们就不能够直接在crontab中使用mysqldump实现周期备份。其实我们可以使用expect脚本自动输入密码,从而实现真正的周期备份。如果你不知…

数据结构实验之图论九:最小生成树_初高中数学竞赛训练----图论初步2

例题中有2019年罗马尼亚大师赛第3试题树树:一个连通图,如果没有一个环,则叫树。森林:若干个独立的树形成一个森林。链:一个特殊的树是节点中,除去两个节点的度为1,其它均为2,叫做链。…

在每个运行中运行多个查询_Spring Data JPA的运行原理及几种查询方式

Spring Data JPA的运行原理:PersistenceContext(name"entityManagerFactory") private EntityManager em; Test public void test1(){ //org.springframework.data.jpa.repository.support.SimpleJpaRepositor yfba8bf //System.out.println(this.u…

467python教程_Magnus Lie Hetland的《Python基础教程(第3版)》自学笔记(持续更新中)...

转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注。Python基础教程.jpg快速上手:基础知识交互式解释器在Python交互式解释器的提示符>>>后面输入help()可以获取指南,在IDLE中,还可…

java 获取所有带指定注解的类名_SXT DAY023 反射和注解

1. 反射机制介绍_Class对象获取反射机制是 Java 的动态性之一 动态语言:在程序运行时,可以改变程序的结构或变量的 类型。反射机制的常见作用动态的加载类、动态的获取类的信息(属性,方法,构造 器) 动态构造对象 动态调用类和对象的任意方法、…

tomcat勾连mysql_tomcat9.0启动脚本startup.bat的分析

1、 Apache Tomcat的下载和安装从Apache官网https://tomcat.apache.org/可以下载各种版本的tomcat软件,下载的文件格式可以是zip/tar.gz/exe形式的。如下图所示,在64位windows中使用tomcat,我们可以下载"64-bit Windows.zip",直接解…

安卓能硬改的手机机型_【每日新闻】小米11部分镜头参数爆料;华为重新采购手机零部件 重启4G手机生产...

数据铸造影响力关注每日行业热点资讯,掌握业界动态趋势,以下是今天的精彩内容:1、小米11部分镜头参数爆料:超大底50MP主摄,长焦达12MP或48MP2、华为重新采购手机零部件 重启4G手机生产1、小米11部分镜头参数爆料&#…

kafka集群为什么需要三个节点_大白话带你认识 Kafka

前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实…

mysql对日期的操作_MySql对日期的操作

1、计算俩个日期之间所差的天数select datediff(2018-09-18,2018-09-01)2、计算日期是这周的星期几select dayofweek(2018-09-18)1.因为外国一般都是把星期天认为是一周的开始,所以用这种方法一般都得减去一天才是这周的星期几select date_format(2018-09-17,"…

sql移动加权计算利润_计算机视觉中的半监督学习

作者:Amit Chaudhary编译:ronghuaiyang导读图解半监督的各种方法的关键思想。计算机视觉的半监督学习方法在过去几年得到了快速发展。目前最先进的方法是在结构和损失函数方面对之前的工作进行了简化,以及引入了通过混合不同方案的混合方法。…

.net 启动mysql数据库连接_[ASP.net教程]mysql数据库连接方式(.net)

[ASP.net教程]mysql数据库连接方式(.net)0 2014-07-17 18:01:001.通过ado.net连接(数据库连接串中为中文貌似无法使用)需要添加MySql.Data.dll(可通过安装mysql-connector-net-6.8.3.mis获得)引用MySql.Data.dll调用方式string connectionString “serverlocalhost;port3306;da…

overflowhidden把内容遮住了怎么办_图片有水印怎么办?不用PS,有这4招就够了!...

图片是我们在做 PPT 时经常会使用到的高频元素。往往会在搜索引擎中搜到很多带有水印的图片,怎么办呢?固然 PS 等软件去水印很给力,但是对于连 PPT 都还没有用得很熟悉的同学,让他们再去下载安装 Photoshop 软件,仅仅只…

mysql开窗函数over_oracle分析函数技术详解(配上开窗函数over())

一、Oracle分析函数入门 分析函数是什么? 分析函数是Oracle专门用于 解决复杂报表统计需求 的功能强大的函数, 它可以在数据中进行分组然后计算基于组的某种统计 ,并且每一组的每一行都可以返回一个统计。 分析函数和聚合函数的不同之处是什么…

传递给系统调用的数据区域太小怎么解决_一口气说出“分布式追踪系统”原理!...

“ 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。图片来自 Pexels这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用&#xf…

语义分割和实例分割_一文读懂语义分割与实例分割

以人工智能为导向的现代计算机视觉技术,在过去的十年中发生了巨大的变化。今天,它被广泛用于图像分类、人脸识别、物体检测、视频分析以及机器人及自动驾驶汽车中的图像处理等领域。图像分割技术是目前预测图像领域最热门的一项技术,原因在于…