6-2 mock服务介绍以及实现原理

mock是以代码实现,模拟接口返回数据

 

Python2.x 中 mock是一个单独模块,需要单独安装

安装mock:cmd->pip install mock

检查是否安装成功:cmd->python->import mock

导入:from mock import mock

 

Python3.x中,mock已经被集成到了unittest单元测试框架中,所以,可以直接使用

导入:from unittest import mock

 

6-3 在case中通过底层函数实现mock

python接口自动化6 mock服务入门到实战

    def test_01(self):

        url = 'http://127.0.0.1:8000/login/'

        data = {

            'username': 'test1',

            'password': 222

        }

        run = RunMain(url, 'POST', data=data)

        mock_data=mock.Mock(return_value=data)  #调取mock方法,把data的值当成模拟的数据

        run.run_main=mock_data #把mock的值替换成run.run_main的返回数据

        res = run.run_main(url,'POST',data)

        print(res)

        self.assertEqual(res['username'],'test1','测试失败')

 

6-4 重构封装mock服务

先封装一个mock方法

from unittest import mock

def mock_test(response_data,mock_method,url,method,request_data):

             #mock模拟的返回值,mock模拟的方法,run_main里面的url,方法,请求参数

    mock_method=mock.Mock(return_value=response_data)

    res=mock_method(url,method,request_data)

return res

 

在调取mock封装好的方法

python接口自动化6 mock服务入门到实战

from mock_demo import mock_test

class TestMethod(unittest.TestCase):

    # @unittest.skip('test_01')

    def test_01(self):

        url = 'http://127.0.0.1:8000/login/'

        data = {

            'username': 'test1',

            'password': 222

        }

        run = RunMain(url, 'POST', data=data)

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

        print(res)

        self.assertEqual(res['username'],'test1','测试失败')

相关文章:

  • 2021-09-07
  • 2021-11-08
  • 2021-12-07
  • 2022-12-23
  • 2022-01-18
  • 2021-09-18
  • 2021-11-08
猜你喜欢
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
  • 2022-12-23
  • 2021-09-19
  • 2022-12-23
相关资源
相似解决方案