python接口自动化测试(七)-unittest-批量用例管理
我们日常项目中的接口测试案例肯定不止一个,当案例越来越多时我们如何管理这些批量案例?如何保证案例不重复?如果案例非常多(成百上千,甚至更多)时如何保证案例执行的效率?如何做(批量)测试数据的管理?如何做到数据与脚本分离?
以上这些问题才是我们自动化测试中要重点考虑的问题,单个用例其实并不难。
来看一下在unittest框架中如何管理批量案例:
一、手工加载批量用例:
- # -*- coding:utf-8 -*-
- # 批量用例执行--手工加载
- import unittest
- class TestOne(unittest.TestCase):
- def setUp(self):
- print '\ncases before'
- pass
- def test_add(self):
- '''test add method'''
- print 'add...'
- a = 3 + 4
- b = 7
- self.assertEqual(a, b)
- def test_sub(self):
- '''test sub method'''
- print 'sub...'
- a = 10 - 5
- b = 5
- self.assertEqual(a, b)
- def tearDown(self):
- print 'case after'
- pass
- if __name__ == '__main__':
- # 1、构造用例集
- suite = unittest.TestSuite()
- # 2、执行顺序是安加载顺序:先执行test_sub,再执行test_add
- suite.addTest(TestOne("test_sub"))
- suite.addTest(TestOne("test_add"))
- # 3、实例化runner类
- runner = unittest.TextTestRunner()
- # 4、执行测试
- runner.run(suite)
二、自动加载批量用例:
- # -*- coding:utf-8 -*-
- # 批量用例执行--自动加载
- import unittest
- import os
- class TestOne(unittest.TestCase):
- def setUp(self):
- print '\ncases before'
- pass
- def test_add(self):
- '''test add method'''
- print 'add...'
- a = 3 + 4
- b = 7
- self.assertEqual(a, b)
- def test_sub(self):
- '''test sub method'''
- print 'sub...'
- a = 10 - 5
- b = 5
- self.assertEqual(a, b)
- def tearDown(self):
- print 'case after'
- pass
- if __name__ == '__main__':
- # 1、设置待执行用例的目录
- test_dir = os.path.join(os.getcwd())
- # 2、自动搜索指定目录下的cas,构造测试集,执行顺序是命名顺序:先执行test_add,再执行test_sub
- discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
- # 实例化TextTestRunner类
- runner = unittest.TextTestRunner()
- # 使用run()方法运行测试套件(即运行测试套件中的所有用例)
- runner.run(discover)
以上只是解决了如何管理批量案例的问题,其它的问题如何做(批量)测试数据的管理?如何做到数据与脚本分离?后续在介绍。
python接口自动化测试(七)-unittest-批量用例管理的更多相关文章
- python接口自动化测试(六)-unittest-单个用例管理
前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- python 接口自动化测试(六)使用unittest 批量用例管理
我们日常项目中的接口测试案例肯定不止一个,当案例越来越多时我们如何管理这些批量案例?如何保证案例不重复?如果案例非常多(成百上千,甚至更多)时如何保证案例执行的效率?如何做(批量)测试数据的管理?如何 ...
- 记录python接口自动化测试--利用unittest生成测试报告(第四目)
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py ...
- python接口自动化测试七:获取登录的Cookies,并关联到下一个请求
获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cookies=loginCookies 此方法需每一次都调用登录方法,并且每一次发送请求 ...
- Python接口自动化测试01
1)环境准备: 接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的 ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
随机推荐
- web发展阶段简介
web1.0.web2.0和web3.0的区别前言: 其实并没有什么所谓的2.0.3.0,因为你没法准确的界定它是什么样的应用,也没法界定它是什么时候开始的,什么时候结束,它只是互联网本身发展的一种 ...
- ClassLoader家族
DexClassLoader可以加载外部的dex,而PathClassLoader只能加载内部的dex 双亲委托 ClassLoader(ClassLoader parentLoader,boolea ...
- Codeforces 1096D Easy Problem 【DP】
<题目链接> 题目大意: 给你一个字符串,每个字符有权值,问现在删除字符串中的字符使其中没有"hard"的最小代价是多少. 解题分析: 用DP来求解: 转 ...
- 有关python 函数参数
# def foo(x):# print(x)### foo(1)# foo('a')# foo({'a':2}) #形参与实参:# def foo(x,y): #x=1,y=2# return x+ ...
- Vue实现用户自定义上传头像裁剪
使用技术: vue.js2.0.cropperjs.canvas <template> <div id="app"> <div id=&q ...
- Java笔记(九)EnumMap & EnumSet
EnumMap & EnumSet 一.EnumMap 一)基本用法 public static Map<Size, Integer> countBySize(List<Cl ...
- 详解~实现Runnable方法创建线程之为什么要将Runnable接口的子类对象传递给Thread的构造函数
/** * @author zhao * @TIME 0419 22:56 End *定义线程的第二种方法:实现Runnable接口(不考虑安全问题) *步骤:1,定义一个子类实现Runnable接口 ...
- .ftl文件介绍
freemarker的文件一般以后缀ftl,ftl文件的头上要写<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /这样才能在ft ...
- php 通用数据库类
<?php // 数据库连接类 class DB{ //私有的属性 private static $dbcon=false; private $host; private $port; priv ...
- 轻松掌握Redux-Action使用方法
轻松掌握Redux-Action使用方法 Redux-Action主要有两个方法,createAction和createAction,只要掌握了这两个方法就会了redux-action的使用. cre ...