Python+Requests接口自动化测试框架

上一篇 / 下一篇  2017-04-06 23:12:10 / 个人分类:python

Python+Requests接口自动化测试框架

144 
作者 赫本z 
2016.09.29 17:23* 字数 146 阅读 722评论 2

1.数据准备
2.用python获取Excel文件中测试用例数据
3.通过requests测试接口
4.根据接口返回的code值和Excel对比

写一个简单登录的接口自动化测试

一、写一个封装的获取excel表格的模块


用例.png

代码实现如下:

#!/usr/bin/python#-*- coding: UTF-8 -*-# 基础包:excel的封装importxlrd
workbook =NonedefopenExcel(path):"""打开excel"""globalworkbookif(workbook ==None):        
          workbook = xlrd.open_workbook(path, on_demand=True)defgetSheet(sheetName):"""获取行号"""globalworkbookreturnworkbook.sheet_by_name(sheetName)defgetRows(sheet):"""获取行号"""returnsheet.nrowsdefgetContent(sheet, row, col):"""获取表格中内容"""returnsheet.cell(row, col).valuedefrelease(path):"""释放excel减少内存"""globalworkbook    
      workbook.release_resources()delworkbook

代码封装后当成模块引用,这还是最开始呢。

二、引用requests模块接口测试

准备工作
需要一个HTMLTestRunner。自带单元测试板块套件。
代码如下:

#!/usr/bin/python#-*- coding: UTF-8-*-# 基础包:接口测试的封装importrequestsimporttezLogaslog
logging = log.getLogger()defapiTest(method, url, data ,headers):"""定义一个请求接口的方法和需要的参数"""try:ifmethod =="post":
             results = requests.post(url, data, headers=headers)ifmethod =="get":
            results = requests.get(url, data, headers=headers)ifmethod =="put":
            results = requests.put(url, data, headers=headers)ifmethod =="delete":
             results = requests.delete(url, headers=headers)ifmethod =="patch":
             results == requests.patch(url, data, headers=headers)ifmethod =="options":
             results == requests.options(url, headers=headers)
          response = results.json()
          code = response.get("code")returncodeexceptException, e:
             logging.error("service is error", e)defrunTest(sheet):"""执行测试用例"""rows = excel.getRows(sheet)
    fail =0foriinrange(2, rows):
        testData = excel.getContent(sheet, i, gl.CASE_DATA)
        testUrl = excel.getContent(sheet, i, gl.CASE_URL)
        testMethod = excel.getContent(sheet, i, gl.CASE_METHOD)
        testHeaders = eval(excel.getContent(sheet, i, gl.CASE_HEADERS))
        testCode = excel.getContent(sheet, i, gl.CASE_CODE)
        actualCode = request.apiTest(testMethod, testUrl, testData, testHeaders)
        expectCode = str(int(testCode))
        failResults =' url: '+ testUrl +' params: '+ testData +' actualCode: '+     actualCode +' expectCode: '+ expectCodeifactualCode == expectCode:
            logging.info("pass")elifactualCode != expectCode:
            logging.info("fail %s", failResults)
            fail +=1iffail >0:returnFalsereturnTrue

三、查看测试报告


报告.png

TAG: 接口

 

评分:0

我来说两句

Open Toolbar