凯里网站建设公司哪家好,门户网站建站,网站维护提示怎么做,城乡与建设部网站巧用PyUnit中unittest特性解决接口测试产生脏数据问题一、背景测试数据创建后需要对其删除#xff0c;不然可能产生脏数据#xff0c;对开发和测试、生产环境造成一定影响。其接口框架是基于Python#xff0c;API规范基于REST。二、产生原因(1)改进前#xff1a;清除资源的…巧用PyUnit中unittest特性解决接口测试产生脏数据问题一、背景测试数据创建后需要对其删除不然可能产生脏数据对开发和测试、生产环境造成一定影响。其接口框架是基于PythonAPI规范基于REST。二、产生原因(1)改进前清除资源的操作放在每个正向测试用例里没有在setUp和tearDown中删除。(2)改进后在setUp中初始化资源idNone每次创建资源时会生产一个资源id然后在tearDown中判断资源的id是否为Noneif不为Nonethen delete 资源并将资源id重新赋值为None。这样不管有没有执行成功最终都会在tearDown中删除被创建成功的资源初始化工作放在setUp中。三、代码对比(1)改进前清除资源的操作放在每个正向测试用例里没有在setUp和tearDown中删除。代码如下def test_konwledges_check_by_list_ok(self):lc知识点API:成功创建2个知识点后批量查询知识点详细信息\title knowledgesflag 0response self.knowledge.add_knowledges(title, flag)message 创建知识点接口返回失败code 200data self.rest_o.parse_response(response, code, message)self.knowledges_id1 data[identifier]response self.knowledge.add_knowledges(title, flag)message 创建知识点接口返回失败code 200data 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 200data self.rest_o.parse_response(response, code, message)print dataassert 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 Noneself.knowledges_id1 Noneself.knowledges_id2 Noneself.knowledge_relation_id Nonedef tearDown(self):#判断资源的id是否为Noneif不为Nonethen 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 knowledgesflag 0response self.knowledge.add_knowledges(title, flag)message 创建知识点接口返回失败code 200data self.rest_o.parse_response(response, code, message)self.knowledges_id1 data[identifier]response self.knowledge.add_knowledges(title, flag)message 创建知识点接口返回失败code 200data 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 200data self.rest_o.parse_response(response, code, message)print dataassert data[self.knowledges_id1]assert data[self.knowledges_id2]#注释原在测试用例中删除的代码#self.knowledge.delete_konwledges(knowledge_id1)#self.knowledge.delete_konwledges(knowledge_id2)四、总结发现问题要多思考并努力把其解决。版权声明本文为博主原创文章未经博主允许不得转载。