python requests excel自动化框架搭建

1、EXCEL文件接口保存方式,如图。

2、然后就是读取EXCEL文件中的数据方法,如下:

import xlrd


class readExcel(object):
    def __init__(self, path):
        self.path = path

    @property
    def getSheet(self):
        # 获取索引
        xl = xlrd.open_workbook(self.path)
        sheet = xl.sheet_by_index(0)
        return sheet

    @property
    def getRows(self):
        # 获取行数
        row = self.getSheet.nrows
        return row

    @property
    def getCol(self):
        # 获取列数
        col = self.getSheet.ncols
        return col

    # 以下是分别获取每一列的数值
    @property
    def getName(self):
        TestName = []
        for i in range(1, self.getRows):
            TestName.append(self.getSheet.cell_value(i, 0))
        return TestName

    @property
    def getData(self):
        TestData = []
        for i in range(1, self.getRows):
            TestData.append(self.getSheet.cell_value(i, 1))
        return TestData

    @property
    def getUrl(self):
        TestUrl = []
        for i in range(1, self.getRows):
            TestUrl.append(self.getSheet.cell_value(i, 2))
        return TestUrl

    @property
    def getMethod(self):
        TestMethod = []
        for i in range(1, self.getRows):
            TestMethod.append(self.getSheet.cell_value(i, 3))
        return TestMethod

    @property
    def getUid(self):
        TestUid = []
        for i in range(1, self.getRows):
            TestUid.append(self.getSheet.cell_value(i, 4))
        return TestUid

    @property
    def getCode(self):
        TestCode = []
        for i in range(1, self.getRows):
            TestCode.append(self.getSheet.cell_value(i, 5))
        return TestCode

3、EXCEL中的数据读取成功后,然后我们需要对于读出来的数据进行相应的处理。如下。当然示例中只是简单列了一下关于POST,GET等二种方式,实际还有很多其它方式,如put,delete等,请求中也还会包括headers,这些都可以自忆添加上去。

import requests
import json
from xl.read_xl import readExcel
from pubulic_way.get_token import get_token


class testApi(object):
    def __init__(self, method, url, data):
        self.method = method
        self.url = url
        self.data = data


    @property
    def testApi(self):
        # 根据不同的访问方式来访问接口
        try:
            if self.method == 'post':
                r = requests.post(self.url, data=json.dumps(eval(self.data)), headers=self.headers)
            elif self.method == 'get':
                r = requests.get(self.url, params=eval(self.data))
            return r
        except:
            print('失败')

    def getCode(self):
        # 获取访问接口的状态码
        code = self.testApi.json()['error']
        return code

    def getJson(self):
        # 获取返回信息的json数据
        json_data = self.testApi.json()
        return json_data

4、最后我们就可以调用之前准备好的方法进去测试了。

from base.base_test import baseTest
from xl.read_xl import readExcel
from pubulic_way.test_api_way import testApi
import unittest


class testLoginApi(unittest.TestCase):
    def testLoginApi(self):
        '''测试发布评伦接口。'''
        excel = readExcel(r'F:\path\add_thread_data.xlsx')
        name = excel.getName
        data = excel.getData
        url = excel.getUrl
        method = excel.getMethod
        uid = excel.getUid
        code = excel.getCode
        row = excel.getRows
        for i in range(0, row - 1):
            api = testApi(method[i], url[i], data[i])
            apicode = api.getCode()
            apijson = api.getJson()
            if apicode == code[i]:
                print('{}、{}:测试成功。json数据为:{}'.format(i + 1, name[i], apijson))
            else:
                print('{}、{}:测试失败'.format(i + 1, name[i]))


if __name__ == '__main__':
    unittest.main(verbosity=2)


5、最后还需要把我们的结果展示出来,这个就很简单了,利用htmltestrunner来展示。展示一张报告的切图。

发布了168 篇原创文章 · 获赞 0 · 访问量 7840

猜你喜欢

转载自blog.csdn.net/weixin_42661815/article/details/102444624
今日推荐