Api_God用例结果处理

  • 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,034评论 0 19
  • 那年美国经济危机的风声刚起之时,国内的朋友问我,这对你有没有影响啊?我一脸天真懵懂无辜,怎么会对我有影响呢?我一介...
    萌妹儿陪你看美国阅读 478评论 7 4
  • 《好好学习》整本书围绕着如何通过在学习的过程中发现临界知识,学习的本质是通过对临界知识的总结和发掘,不断改进我们原...
    默斋小生阅读 544评论 0 2
  • 不怕跌倒,所以飞翔 首先GreenDao的项目地址: [greenDao官方地址]https://github.c...
    笔墨Android阅读 321评论 0 0