day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告
一.使用.yaml格式的文件直接可以存放字典类型数据,如下图,其中如果有-下一行有缩进代表这是个list,截图中是整体是一个list,其中有两部分,第二部分又包含另外一个list
二.单元测试:开发自己测试自己写的代码,居于单元测试,就产生了unittest模块,该模块可以查找用例,执行用例,校验结果,产生报告
2.1 首先需要在环境变量中导入HTMLTestRunner.py文件,环境变量位置External Libraries,python主目录的Lib下,就是将该文件放在该目录下即可
2.2 测试用例,
2.3 测试集合:多个测试用例放在一起
2.4 testrunner 用来运行测试用例
2.5 定义类继承unittest.TestCase,使用unittest.main()运行函数的时候,可以运行当前文件中所有的用例,不能产生测试报告,类中定义的函数必须以test开头,才会执行. setUp()函数实在每条用例运行之前执行的,tearDown()是每条用例执行后执行的,运行顺序为setUp()------第一条用例------tearDown(),每条用例执行前后都会执行setUp()和tearDown()函数
2.6 为了生成可视化测试报告,定义一个测试集合unittest.TestSuite(),根据行号接上一个截图中的代码,运行测试集合的是不需要用unittest.main方式运行,而是定义一个runner来执行用例
2.7 给用例加上描述
2.8 生成较好看的报告使用一下方式,需要导入nnreport模块,将测试集合test-suite加入Beautifulreport()中
2.9 为了生成更好看的报告,需要将Beautiful.zip文件解压,将Beautiful文件夹放到环境变量External Librarabs下面的site-package目录下,把导入的nnreport更换成Beautifulreport.在测试过程中,用例放一般在单独的目录下,所以需要找到用例所在目录,匹配到相关文件,再将文件添加到测试集合testsuite(使用循环或者列表生成式),指定报告report中写好报告描述descripition,报告文件名称filesnames(可加指定路径),默认在当前目录下,生成的报告比较美观
2.10 参数化,需要导入ddt模块,如果没有需要安装,在创建类名上一行需要添加@ddt.ddt,在类中的方法中也需要天加@ddt.data(),括号中写需要传入的数组,数组添加完毕后需要加上@ddt.unpack,目的是将数组中的数据解开,否则会报错 如果传入参数只有一个值时,就不需要写数组和@ddt.unpack,
2.11 如果用例文件只存在与单个文件中,则可指定运行单个文件中的数据,入参中一定要上两个星号(**test_data)
2.12 实现调用测试login.yaml文件中的测试用例
三. 实现一个以指定模板代码生成多个相应的以.ymal结尾的文件内容相同的.py文件,然后读取全部.py文件中的用例,然后执行,生成报告.首先新建项目目录(utp),在项目目录下分别新建①bin目录,在bin目录下新建start.py文件,②conf目录,在conf目录下新建setting.py,模板文件case_template文件,③lib目录,在lib目录下新建tools.py文件,④data目录,在data目录下放已经准备好的多个.yaml文件,⑤report目录,用来存放测试报告文件
1.bin目录下的start.py文件
2.conf目录下的setting.py文件
3.conf目录下的case_template模板文件,注意该文件不是Py文件,是一般的文本文件
4.lib目录下的tools.py文件
5.data目录下的多个.yaml文件
6.report中存放生成的报告,略......
day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告的更多相关文章
- Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...
- extern的原理很简单,就是告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,你要放行!”
extern的原理很简单,就是告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,你要放行!”
- 在C的头文件中定义的结构体,如何在cpp文件中引用
解决方案1:在cpp文件中放置.c,且在该文件中引用变量 解决方案2:在一个cpp文件中包含.c,但在另一个cpp文件中使用结构体变量 cpp文件1 cpp文件2 #include "dia ...
- 《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的
0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描 ...
- 《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的
0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述 ...
- 在.vue文件中让html代码自动补全的方法(支持vscode)
在.vue文件中让html代码自动补全的方法(支持vscode) https://blog.csdn.net/qq_36529459/article/details/79196763 "fi ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- windows下使用ofstream默认输出内存数据到文件中时,会自动将0A换成0A0D
0A即\n,而0D是\r,windows下换行是\n\r,因此会自动转换. 但是,这样会带来很大的问题,导致由内存写入文件中的数据和内存中不一样,还不知道是什么原因造成的. 特别是将从网络接收来的pn ...
随机推荐
- Java反射、反射练习整理
反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...
- 映像文件工具srec
目录 映像文件工具srec 介绍与帮助 常用例子 常用选项 一个实际的例子 hex转bin 数据填充 文件合并 文件分割 加入CRC 查看信息 使用命令集合的文本 详细文件格式的描述 附录:MDK的例 ...
- Kubernetes之存储
存储卷概述 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态) ...
- springboot2 pagehelper 使用笔记
作者:cnJun 博客专栏: https://www.cnblogs.com/cnJun/ pom.xml <parent> <groupId>org.springframew ...
- [Android] Android RxJava2+Retrofit2+OkHttp3 的使用
[Android] Android RxJava2+Retrofit2+OkHttp3 简单介绍Retrofit.OKHttp和RxJava之间的关系: Retrofit:Retrofit是Squar ...
- safari中input、textarea无法输入的问题
网址:https://www.cnblogs.com/xiayu25/p/6832748.html * { -webkit-box-sizing: border-box; -moz-box-sizin ...
- SpringBatch框架简介
概观 轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序. Spring Batch提供了可重复使用的功能,这些功能对于处理大量记录至关重要,包括记录/跟踪,事务管理,作 ...
- PCA,到底在做什么
很久以前写过一篇 PCA 的小白教程,不过由于当时对 PCA 的理解流于表面,所以只是介绍了一下 PCA 的算法流程.今天在数图课上偶然听到 PCA 在图像压缩上的应用,突然明白了一点实质性的东西,这 ...
- Python-Django-Ajax进阶2
-forms组件的渲染错误信息 在模板中:<span>{{ foo.errors.0 }}</span> -forms使用bootstrap样式 widget=widgets. ...
- jxl应用事例
实例中主要目的是解析jxl使用流程以及jxl绘制Excel的写法思路,代码掩去了项目中的真实数据,请根据需求酌情修改,如果有帮助到有需要的人,不胜欢喜. Dao层为查询数据库,返回list数据,此处省 ...