美文网首页
unittest和requests重构封装

unittest和requests重构封装

作者: 小鱿鱼Gun神 | 来源:发表于2019-09-30 23:14 被阅读0次

先写一个运行接口测试的主方法

import requests
import json

class RunMain:

    def send_get(self, url, data):
        res = requests.get(url=url, data=data).json()
        return json.dumps(res, indent=2, sort_keys=True)

    def send_post(self, url, data):
        res = requests.post(url=url, data=data).json()
        return json.dumps(res, indent=2, sort_keys=True)

    def run_main(self, url, method, data=None):
        res = None
        if method == 'GET':
            res = self.send_get(url, data)
        else:
            res = self.send_post(url, data)
        return res

如上只需传入对应参数调用此方法,那么我们如何将requests与unittest结合起来呢?
首先需要把对应模块导入进来

# manage需要导入的模块
from base.manage import RunMain

然后在unittest中实例化类,case中执行用例,传入参数执行

# coding:utf-8
import unittest
from base.manage import RunMain


class TestMethod(unittest.TestCase):

    def setUp(self):
       #实例化类
        self.run = RunMain()

    def test_01(self):
        url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
        data = {
            'mobile': '159*****455',
            'password': 'e10adc3949ba59abbe56e057f20f883e'
        }
        res = self.run.run_main(url, 'POST', data)
        print(res)

    def test_02(self):
        url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
        data = {
            'mobile': '159******456',
            'password': 'e10adc3949ba59abbe56e057f20f883e'
        }
        res = self.run.run_main(url, 'POST', data)
        print(res)

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

运行结果:


运行结果.png

当执行case足够多的时候,我们要怎么去检查用例的返回结果是否正确?这就要用到unitest的assert了,
常用的assertEqual传入三个参入,第一个参数与第二的参数,第三个参数可以省略,第四个参数"如果第一、第二个参数不相等,则返回...."


assertEqual判断.png

如在case里面加上断言:

    def test_01(self):
        url = 'https://tapi.eyxyt.net/parkopening/backstage/v1/mgr/login'
        data = {
            'mobile': '159*****455',
            'password': 'e10adc3949ba59abbe56e057f20f883e'
        }
        res = self.run.run_main(url, 'POST', data)
        #将返回值转换为字典类型
        res_a=json.loads(res)
        self.assertEqual(res_a['code'],200,'测试失败')

备注:如果res_a['code'] !=200,则测试失败

相关文章

网友评论

      本文标题:unittest和requests重构封装

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