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 ...
随机推荐
- redis简单命令总结
1.连接到redis服务器:redis-cli -h 127.0.0.1 -p 6379 -a 密码 select index 切换 redis 数据库 flushdb 删除当前数据库所有的 key ...
- ETL过程跑完后,使用python发送邮件
目标库中,如果有行数为0的表,使用python发送邮件 # -*- coding:utf-8 -*- # Author: zjc # Description:send monitor info to ...
- BeautifulSoup解析模块
简介: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 使用 from bs4 impor ...
- 第九节: 利用RemoteScheduler实现Sheduler的远程控制
一. RemoteScheduler远程控制 1. 背景: 在A服务器上部署了一个Scheduler,我们想在B服务器上控制这个Scheduler. 2. 猜想: A服务器上的Scheduler需要有 ...
- centos7 下 nfs 搭建总结
nfs一般用于生产环境磁盘空间不足导致数据无法写入,从而通过异机远程挂载磁盘方式解决问题. 一. rpm -qa | grep nfs-utils rpm -qa | grep rpcbind 二. ...
- sql 发送邮件
一.启用Database Mail XPs功能. 查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期 ...
- Linux vi 编辑器常见命令的使用
Linux vi 编辑器常见命令的使用 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Win ...
- Vue.js 技术揭秘(学习) vue流程
new Vue() _init() mergeOptions $watch --> new Watch vm._render 生成VNode create diff patch vm._upda ...
- 怎样给手机安装fiddler证书
如果需要抓取手机端的HTTPS包,就要在手机上面安装fiddler证书. 1.使用手机连接WiFi做好代理: 2.代理成功后打开手机浏览器: 3.在浏览器输入:http://IP地址:端口号后搜索(如 ...
- Codeforces 544E K Balanced Teams (DP)
题目: You are a coach at your local university. There are nn students under your supervision, the prog ...