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 ...
随机推荐
- Hadoop生态圈-zookeeper完全分布式部署
Hadoop生态圈-zookeeper完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客部署是建立在Hadoop高可用基础之上的,关于Hadoop高可用部署请参 ...
- CMDB服务器管理系统【s5day92】:定制表头
一.目录结构 二.获取数据,模板语言渲染 web\views.py import json from django.shortcuts import render,HttpResponse from ...
- velocity 新手用小常识--开源,简单易上手
项目中经常用到的 .vm 后缀文件是什么? 基于 java 的 velocity 模版引擎的一种页面控制文件,是一些类似 html 语句和一种叫 VLT 的语句构成 velocity --美 [v ...
- CSS布局-flex布局入门教程
前言 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 查询兼容 F ...
- [再寄小读者之数学篇](2014-06-23 二阶导数估计 [中国科学技术大学2013年高等数学B 考研试题])
设 $f(x)$ 二阶连续可导, $f(0)=f(1)=0$, $\dps{\max_{0\leq x\leq 1}f(x)=2}$. 证明: $$\bex \min_{0\leq x\leq 1}f ...
- [物理学与PDEs]第1章第7节 媒质中的 Maxwell 方程组 7.3 媒质中电磁场量的表示
1. 电磁能量密度 $$\bex \cfrac{1}{2}({\bf E}\cdot{\bf D}+{\bf B}\cdot{\bf H}). \eex$$ 2. 电磁能量流密度向量 $$\bex { ...
- 时间序列函数resamlpe详解
resample与groupby的区别:resample:在给定的时间单位内重取样groupby:对给定的数据条目进行统计 函数原型:DataFrame.resample(rule, how=None ...
- Mysql的跨服务器 关联查询--Federated引擎
1.确认开启Federated引擎 查询FEDERATED功能是否开启: show ENGINES; 2.如果状态为NO则需修改my.ini文件,增加一行federated配置: ...
- springMVC中controller的几种返回类型
==网文1,还不错,感觉比较老旧springMVC中controller的几种返回类型 - CSDN博客http://blog.csdn.net/qq_16071145/article/details ...
- WEB 3D SVG CAD 向量 几个实施(转)
一.他们所有的发展.从地上爬起来 VML+SVG发展矢量地图.你并不需要导入第三方的图片作为背景,直接在地图编辑器可以在底图内容编辑,由于岩石.巷道.煤层.画水.础地图样子再在其上面画出智慧线等设 ...