美文网首页测试开发
Api_God用例结果处理

Api_God用例结果处理

作者: 古佛青灯度流年 | 来源:发表于2016-11-26 17:28 被阅读17次
  • God新增功能:
    1.用例测试结果入库
    2.短链接实时监控
    3.通过域名访问,查看测试情况

一、测试结果入库:

之前采用的HtmlTestRunner.py直接生成测试报告,根据生成的测试报告查看测试情况:
顺便总结一下优缺点:
优点:

  • 方便,只需要引用然后执行以下就能完成unittest对于用例结果的处理;
  • 简单,不需要考虑任何关于生成测试报告的问题;
  • 快速,对于快速搭建一套完成的测试系统,这个强大的库无疑省去了将近50%的力气;

缺点:

  • 封闭,封闭性比较强,并没有开发很多可用的接口(至少我一个都不知道);
  • 捕获异常不够准确,用的时间久了,会发现报告中错误的用例捕获的异常信息不准确;
  • 自定义,不能满足日益增加的业务需求

为了满足对于测试结果输出准确性,故选择将测试结果自行处理,根据业务的具体情况,个性化的定义用例通过的准则;

  • Mysql具体实现:
CREATE TABLE  test_result (  
     `id` int(11) NOT NULL AUTO_INCREMENT,  
     `if_name` varchar(10) Not Null comment '接口名称', 
     `case_name` varchar(20) comment '用例名称', 
     `status` varchar(5),  `result` varchar(20),  
     `response` varchar(1000),  `url_target` varchar(20) comment '执行域名',  
     `comment` varchar(30),  
     `type` varchar(10) comment '执行接口类型',  
     `uptm` timestamp not null,  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

! 暂时这些字段,后期如果业务需要,可以随时添加

入库
  • 用例中具体实现:
from Src.Function.ApiMethod import Api_urllib
from Src.Function.LogMainClass import *
from Src.Function.MySql import MySQL
class CheckPay(Api_urllib):     
      def setUp(self):          
           self.comment = '测试提现记录'       
           self.casename = "test_CheckPay"        
           self.interfacename = 'd13'        
           self.result = 'Fail'        
           self.response = "Null"       
           self.status = '0'   
      def test_CheckPay(self):        
           casename = self.casename        
           response = ''       
           status_code = ''        
           transnumber = Api_urllib.read_from_file('d08ford12d13').split(',')[0]        
           try:     
               #  正常接口请求       
                cookie = Api_urllib.read_cookie_file('100')            
                parameter = {'r': '123', 'transnumber': transnumber}            
                response, status_code = Api_urllib.getInterface_requests_status(parameter, headers=cookie)        
              # 自定义当用例执行时,校验到哪些信息属于Pass              
                self.result = "Pass"        
           except Exception as msg:            
                print (msg)            
                raise        
            finally:      
                  # 将本条测试用例 入库 ,其中:set_test_result 为自己封装类      
                MySQL.set_test_result(response, status_code, self.interfacename, self.casename, self.comment, self.result)        
        def tearDown(self):        
             do something

说明:
1.在setup套件中初始化变量,因为用例中首先执行setup;
2.test_checkpay为用例主体,其中通过封装方法: Api_urllib.getInterface_requests_status()获取接口的responsestatus_code;
3.根据测试情况,定义该条用例认定为通过的条件
4.通过封装类方法:MySQL.set_test_result()将用例中必要用例进行入库操作,在此方法中我对response进行了2次处理,从而增加入库信息的丰富性
5.其中set_test_result()方法主要对json格式的respose进行二次处理,以及对一些异常返回情况进行处理

def set_test_result(cls, response, status_code, interfacename, casename, comment, result):    
        status = ''      
        try:        
                status = response['succ']        
                cls.response_new = 'succ:%s' % response['succ']                   
                if response['succ'] != '1':                
                     cls.response_new = response['msg']        
           
       except:        
               status = status_code        
              #` todo_string() `封装的处理字符串方法
               cls.response_new = MySQL.todo_string(response)    
       finally:        
              MySQL.insert(interfacename, casename, comment, status, result, cls.response_new)        

@ 雾霾- 2016-11-26 17:28:24

相关文章

  • Api_God用例结果处理

    God新增功能:1.用例测试结果入库2.短链接实时监控3.通过域名访问,查看测试情况 一、测试结果入库: 之前采用...

  • Api_God日志处理

    关于日志方面的一些感悟。随着学习的逐渐深入,越来越感觉通过日志排查线上运行脚本的异常情况真的很重要,所以我认为程序...

  • 数据依赖如何解决

    用例A依赖用例B的结果 解决办法: 1.fixture,把用例1添加fixture,传到用例2中 2.把用例1的返...

  • 测试用例基础知识

    测试用例的内容:用例编号、用例标题、重要级别、预置条件、测试输入、操作步骤、预期结果、测试结果、作者。 黑盒测试用...

  • 测试用例

    测试用例的构成要素:(核心要素:名称、级别、步骤、期望结果、实际结果) 1、用例编号 no. 2、用例名称 tes...

  • 接口自动化测试之用例结构设计(三)

    前面和大家探讨了编写测试用例的方法,设计框架的思路:导出用例,执行用例,收集用例结果。 这篇文章和大家聊一聊用例结...

  • 测试基础,一,

    一,用例, 1、模块名称, 2、用例编号, 3、用例名称, 4、前置条件, 5、操作步骤, 6、预期结果, 7、测...

  • mysql 之 case when 使用

    参考如下用例: 查询结果如下:

  • python unittest 单元测试

    python单元测试框架 unittest,用它来处理批量用例管理,校验返回结果,初始化工作以及测试完成后的环境复...

  • 学习笔记-Pytest(十二)标记失败xfail

    1.前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给...

网友评论

    本文标题:Api_God用例结果处理

    本文链接:https://www.haomeiwen.com/subject/exlgpttx.html