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 ...
随机推荐
- Pandas系列(四)-文本数据处理
内容目录 1. 为什么要用str属性 2. 替换和分割 3. 提取子串 3.1 提取第一个匹配的子串 3.2 匹配所有子串 3.3 测试是否包含子串 3.4 生成哑变量 3.5 方法摘要 一.为什么要 ...
- Jumbo frame与MTU
最近有测试问我Jumbo和MTU分别限制的是什么把我问住了,网上查了一些资料,发现大部分是百科上copy下来的,都没有说到点子上,关键时刻还是同事靠谱,现在根据自己的理解整理一下. 首先了解一下二 ...
- Entity Framework入门教程(3)---EF中的上下文简介
1.DbContext(上下文类) 在DbFirst模式中,我们添加一个EDM(Entity Data Model)后会自动生成一个.edmx文件,这个文件中包含一个继承DbContext类的上下文实 ...
- SpringBoot入门-2(两种热部署方式)
在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢?那就是spr ...
- 微信小程序 mpvue vant
Mpvue中使用Vant Weapp组件库 https://segmentfault.com/a/1190000016228410?utm_source=tag-newest 小程序采坑记 mpvue ...
- apache中 sed 指定文件中某字符串增加行
#!/bin/bash #在 servername 域名 字符串后面添加指定字符串 servername=`grep ServerName httpd-vhosts.conf |awk '{print ...
- Spring系列(二) Bean装配
创建应用对象之间协作关系的行为称为装配(wiring), 这也是DI的本质. Spring中装配Bean的方式 Spring提供了三种装配Bean的方式. 隐式的Bean发现机制和自动装配 Java ...
- webstorm javascript 分号提示如何自动补全或去掉?
转载于: https://segmentfault.com/q/1010000006930809?_ea=1180552 如图片显示,每行末尾都会提示你加上分号,如何让IDE自动完成这个操作或者取消这 ...
- ul li 实现层级列表显示
实现效果如下: 实现要求具体如下: 1.标题有序号 上图标记1 2.标题下面的子集标题要有一定的缩进,且子集标题也有一定的序号,上图标记 2 3.如果子集标题内容过长,换行的时,开始的位置不能超过对应 ...
- chromerdriver下载地址:xpath_help
chrome下载地址 http://npm.taobao.org/mirrors/chromedriver xpath_help https://blog.csdn.net/Cayny/article ...