jmeterVue

mock服务入门实践

2019-10-08  本文已影响0人  小鱿鱼Gun神

mock是以代码来实现fiddler的一个功能,模拟返回数据

mock模拟接口返回数据,如下在test_method.py文件中调用mock,首先将mock导入import mock,导入之后在case中运用,模拟调用的方法,将入参作为返回值

    def test_02(self):

        url = 'https://tapi.*********/login'
        data = {
            'mobile': '159****456',
            'password': 'e10adc*******20f883e',
            'code': 200
        }
        #调用mock时返回一个值
        mock_data = mock.Mock(return_value=data)
        self.run.run_main=mock_data
        res = self.run.run_main(url, 'POST', data)
        print(res)
        self.assertEqual(res['code'], 200, '测试失败')

执行结果如下:


执行结果.png

修改入参code的值


运行结果.png

重构封装mock服务(创建一个文件mock_demo.py),因为在requests接口请求方法里有url,method,data,所以这些参数也要传,除此之外在mock的时候也需要有个方法self.run.run_main(指mock的是run_main方法),因此模拟的方法也应该封装进去

requnests传参.png

模拟mock封装,文件名mock_demo.py

# coding:utf-8
import mock
#模拟mock封装,把请求数据和响应数据给返回出去
def mock_test(mock_method,request_data,url,method,response_data):
    mock_method = mock.Mock(return_value=response_data)
    res = mock_method(url,method,request_data)
    return res

mock封装好后,将mock方法导入test_method.py文件,使用from base.mock_demo import mock_test,调用mock方法传入方法名、请求数据,url,请求方法,返回数据

res=mock_test(self.run.run_main,data,url,"POST",data)

具体实现如下:

# coding:utf-8
import unittest
from base.test import  RunMain
import json
from base.mock_demo import mock_test

class TestMethod(unittest.TestCase):

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

    def test_01(self):
        url = 'https://tapi.******************/login'
        data = {
            'mobile': '159*****55',
            'password': 'e10*********83e'
        }
        res = self.run.run_main(url, 'POST', data)
        #返回值转换为字典型
        res_a=json.loads(res)
        self.assertEqual(res_a['code'],200,'测试失败')
        print('这是test01')

    def test_02(self):

        url = 'https://tapi.**************/login'
        data = {
            'mobile': '159******56',
            'password': 'e10************3e',
            'code': 201
        }
        
        res=mock_test(self.run.run_main,data,url,"POST",data)
        print(res)
        self.assertEqual(res['code'], 200, '测试失败')

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

运行结果:


运行结果.png
上一篇下一篇

猜你喜欢

热点阅读