python 接口自动化测试(四)转

上一篇 / 下一篇  2016-10-20 13:48:15 / 个人分类:python

说完了SOAP协议的接口自动化

该说下http协议的接口测试

HttpService.py

复制代码
importrequestsimportsys
reload(sys)
sys.setdefaultencoding("utf-8")classHttpService():def__init__(self,host,url):
        self.host=host
        self.url=urldefhttpReq(self,params,method="POST"):
        requesturl=self.host+self.urlif(method =="POST"):
            resp_data=requests.post(requesturl,params)else:
            resp_data=requests.get(requesturl)
        resp=resp_data.textreturnresp
复制代码

这是http请求的实现类,运用了requests模块

之后就是在具体的执行文件中调用上面的HttpService.py

在RunMain.py中添加方法:

复制代码
defrunHttpTest(ip,list,serviceClass):
    length=len(list)#实现控制台输出执行进度widgets = [ip+'Progress:', Percentage(),'', Bar(marker=RotatingMarker('>')),'', ETA()]
    pbar= ProgressBar(widgets=widgets, maxval=length).start()foriinrange(length):
        pbar.update(i+1)try:#实例化类的对象runhttptest =serviceClass(ip,str(list[i][0]))if(str(list[i][2]) =="GET"):#判断http请求的方法test_rep=runhttptest.httpReq(None,"GET")
                DataEngine.httpGetResultCheck(test_rep,xlw,list,i)#返回结果判断else:
                dict=eval(str(list[i][2]))
                test_rep=runhttptest.httpReq(dict)
                DataEngine.httpResultCheck(test_rep,xlw,list,i)exceptException,e:print(str(list[i][1])+"\t"+str(e))
            Logging.writeException(e)
    pbar.finish()
复制代码

由于接口返回结果和SOAP接口的返回结果类型不一致,所以DataEngine.py中的结果处理方法就要做一些扩展,由于时间关系,我这边就直接另写了两个方法进行结果断言处理

复制代码
defhttpResultCheck(test_rep,xlw,list,xls_row):globalCOUNT_ROWs
    result=test_rep.find(',"status":1',22)if(result != -1):
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
        COUNT_ROWs=COUNT_ROWs+1else:
        Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
        COUNT_ROWs=COUNT_ROWs+1defhttpGetResultCheck(test_rep,xlw,list,xls_row):globalCOUNT_ROWs
    test_rep=json.loads(test_rep)
    result=test_rep['status']if(result == 1):
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
        COUNT_ROWs=COUNT_ROWs+1else:
        Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
        COUNT_ROWs=COUNT_ROWs+1
复制代码

以上就是所有的代码添加:

执行后结果输出见下图:

其中执行失败的用例,会以红色醒目标识出来,并在其后输出具体的中文用例描述

如有问题,欢迎交流


TAG: Python python 接口

 

评分:0

我来说两句

Open Toolbar