python中接口测试垃圾数据如何清理_巧用PyUnit中unittest特性解决接口测试产生脏数据问题...
巧用PyUnit中unittest特性解决接口测试产生脏数据问题
一、背景
测试数据创建后需要对其删除,不然可能产生脏数据,对开发和测试、生产环境造成一定影响。其接口框架是基于Python,API规范基于REST。
二、产生原因
(1)改进前:清除资源的操作放在每个正向测试用例里,没有在setUp和tearDown中删除。
(2)改进后:在setUp中初始化资源id=None,每次创建资源时会生产一个资源id,然后在tearDown中,判断资源的id是否为None,if不为None,then delete 资源并将资源id重新赋值为None。这样不管有没有执行成功,最终都会在tearDown中删除被创建成功的资源,初始化工作放在setUp中。
三、代码对比
(1)改进前:清除资源的操作放在每个正向测试用例里,没有在setUp和tearDown中删除。代码如下:
def test_konwledges_check_by_list_ok(self):
"""
lc知识点API:成功创建2个知识点后,批量查询知识点详细信息\
"""
title = 'knowledges'
flag = 0
response = self.knowledge.add_knowledges(title, flag)
message = "创建知识点接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
self.knowledges_id1 = data['identifier']
response = self.knowledge.add_knowledges(title, flag)
message = "创建知识点接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
self.knowledges_id2 = data['identifier']
knowledge_id_str = [self.knowledges_id1, self.knowledges_id2]
response = self.knowledge.check_konwledges_details_by_list(knowledge_id_str)
#print 'response: ' + str(response)
message = "批量查询知识点详细信息接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
print data
assert data[self.knowledges_id1]
assert data[self.knowledges_id2]
self.knowledge.delete_konwledges(knowledge_id1)#放在测试用例中删除
self.knowledge.delete_konwledges(knowledge_id2)#放在测试用例中删除
(2)改进后:
a.setUp和tearDown中改进:
def setUp(self):
print 'start run KnowledgeTest(知识点接口)......'
self.knowledge = Knowledge()
self.lessons = Lessons()
self.instructional = Instructional(id)
self.teaching_material = TeachingMaterial()
self.rest_o = CoRestful.Restful()
self.rand_o = CoRand()
self.knowledges_id = None
self.knowledges_id1 = None
self.knowledges_id2 = None
self.knowledge_relation_id = None
def tearDown(self):#判断资源的id是否为None,if不为None,then delete 资源并将资源id重新赋值为None,这样不管有没有执行成功,最终都会在tearDown中删除被创建成功的资源
if self.knowledge_relation_id != None:
self.knowledge.delete_relation(self.knowledge_relation_id)
if self.knowledges_id2 != None:
self.knowledge.delete_konwledges(self.knowledges_id2)
if self.knowledges_id1 != None:
self.knowledge.delete_konwledges(self.knowledges_id1)
if self.knowledges_id != None:
self.knowledge.delete_konwledges(self.knowledges_id)
print '------------------------------------------------------'
b.测试用例中将其删除代码注释
def test_konwledges_check_by_list_ok(self):
"""
lc知识点API:成功创建2个知识点后,批量查询知识点详细信息\
"""
title = 'knowledges'
flag = 0
response = self.knowledge.add_knowledges(title, flag)
message = "创建知识点接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
self.knowledges_id1 = data['identifier']
response = self.knowledge.add_knowledges(title, flag)
message = "创建知识点接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
self.knowledges_id2 = data['identifier']
knowledge_id_str = [self.knowledges_id1, self.knowledges_id2]
response = self.knowledge.check_konwledges_details_by_list(knowledge_id_str)
#print 'response: ' + str(response)
message = "批量查询知识点详细信息接口返回失败"
code = 200
data = self.rest_o.parse_response(response, code, message)
print data
assert data[self.knowledges_id1]
assert data[self.knowledges_id2]
#注释原在测试用例中删除的代码
#self.knowledge.delete_konwledges(knowledge_id1)
#self.knowledge.delete_konwledges(knowledge_id2)
四、总结
发现问题要多思考,并努力把其解决。
版权声明:本文为博主原创文章,未经博主允许不得转载。
python中接口测试垃圾数据如何清理_巧用PyUnit中unittest特性解决接口测试产生脏数据问题...相关推荐
- 大数据相关从业_如何在组织中以数据从业者的身份闪耀
大数据相关从业 Build bridges, keep the maths under your hat and focus on serving. 架起桥梁,将数学放在脑海中,并专注于服务. 通过协 ...
- python爬虫爬取中国天气网_【实战】中国天气网爬虫之华北城市数据爬取
概述: 在人工智能来临的今天,数据显得格外重要.在互联网的浩瀚大海洋中,隐藏着无穷的数据和信息.因此学习网络爬虫是在今天立足的一项必备技能.本路线专门针对想要从事Python网络爬虫的同学而准备的,并 ...
- es数据定时清理_一种基于ELK的数据自动清理方法与流程
本发明涉及涉及ELK.Shell.Kafka.Freemarker等技术领域,尤其涉及一种基于ELK的数据自动清理方法. 背景技术: ElasticSearch是一个基于Lucene的全文搜索服务.它 ...
- jeesite如何已生成数据的数据源_如何在postman中自动生成接口请求数据,这个功能你需要知道,可结合浏览器和两大抓包工具使用...
在做接口调试或测试时,请求中的每个参数都要按照接口文档填写到postman的对应位置中,很是麻烦.那是否有这样一个功能?可以帮我们自动生成接口数据,无需修改,直接发送请求就可以呢. 这里面我们需要借助 ...
- python有像sumif的函数吗_在WPS表格中如何巧用SUMIF函数筛选后求和销售业绩
在财务数据统计中,有时要对部分或特殊条件的数据进行筛选求和,例如工资表中同人名的奖金总和;或销售表中同产品的销量总和等.在财务数据统计中,有时要对部分或特殊条件的数据进行筛选求和,例如工资表中同人名的 ...
- sessionlistener方法中获取session中存储的值报空指针异常_从Golang实践中得到的教训...
当使用复杂的分布式系统时,可能会遇到并发处理的需求.我们知道golang的协程是处理并发的利器之一,加上Golang为静态类型和编译型使得其在企业中使用越来越广泛.Mode.net公司系统每天要处理实 ...
- 拟合一条曲线_毕业季:6 款曲线,解决 99% 的 ELISA 数据拟合难题
毕业季:6 款曲线,解决 99% 的 ELISA 数据拟合难题 我们通常 ELISA 实验完成后,后面最重要的工作就是如何把 OD 值转化为浓度,以达到分析数据的目的.样本浓度的分析是根据标准品数据所 ...
- java中demo接人_return的用法_如何理解java中return的用法?
C语言中return用法?(请熟练者进) return是返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数intmain() {}这里就必须有一个return,只 ...
- 爬取三千条数据需要多久_存储-性能,IOPS,带宽,吞吐量,1TB数据需要多久写完...
让我们先看一下这三个概念: IOPS (Input/Output Per Second) 即每秒的输入输出量(或读写次数),是衡量存储介质性能的主要指标之一.IOPS是指每秒钟系统能处理的读写请求数量 ...
最新文章
- 热门专业没那么难,文科生打开统计学的正确方式!
- 设计模式第七讲-责任链模式
- jquery插件的写法
- 轻松构建基于 Serverless 架构的弹性高可用音视频处理系统
- Python容器类型公共方法汇总
- 【计算机基础】存储器层次 Memory hierarchy
- JavaWeb课程复习资料(四)——创建Servlet
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)题解
- 王道考研 计算机网络2 标准化工作
- iPhone X 再曝新 Bug:电话无法接听!
- W5500连不上的问题
- 基于Zabbix的校园网核心监控系统设计与实现
- mp3处理工具(mp3agic)
- 笔记本当服务器显示器怎么连接,笔记本当主机显示器的设置方法
- 计算机教研组活动简讯,思中信息技术组教研活动简报
- Sentinel流量控制流控规则
- win10开机系统恢复(WinRE)中找不到系统恢复映像或功能不全的解决方法
- 为何excel中数据无法计算机,Excel中数字无法正常求和怎么办?
- 学习python的编程语言
- matplotlib的基本用法(十三)——figure绘制多图