全网最牛,接口测试mock详细总结,彻底打通接口测试...


前言

什么是mock?

mock就是开发在开发的过程中需要依赖一部分的接口,但是对方没有提供或者环境等等情况,总之是没有,那么开发使用mock server自己类mock数据,方便自己正常的进行开发和对编写的功能进行自测。

在现在的软件开发过程中,特别是app的部分,需要的很多数据以及内容,都是来自server端的API,但是不能保证在客户端开发的时候,api在server端已经开发完成,专门等着前端来调用。

理想的情况就是前端在开发的时候,已经有人写好了接口,直接调用就ok,但是整个是理想的状态,如果在前端开发的时候,提供api的同学没有提供,那么,这个时候就需要我们mock数据了

mock数据的具体步骤

1、在https://github.com/dreamhead/moco地址中可以下载moco-runner-0.11.0-standalone.jar;

2、编写login.json;

3、运行这个包;
java -jar moco-runner-0.10.0-standalone.jar http -p 12306 -c login.json
注意:
mock server和编写的login.json文件是在同一个目录下,-p:是指定端口 ,-c:是指定文件)

4、我们使用postman 来验证下 我们mock的登录接口是不是ok

5、我们再使用python编写一个接口测试用例,来验证换这个登录的接口和获取它的token,来实现的代码

下面编写一个登录和一个业务的(就是输入一个车牌号,查询该车牌号的显示时长,和它的停车费用)的json文件

[
  {
    "request":
    {
      "method":"post",
      "uri":"/login",
      "json":
      {
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
      "file":"login_response.json"
    }
  },
  {
    "request":
    {
      "method":"post",
      "uri":"/parkinside",
      "json":
      {
        "token":"asdgfhh32456asfgrsfss",
        "vpl":"AJ3585"
      }
    },
    "response":
    {
      "file":"parkinside.json"
    }
  }
]

]

B1

登录页面的响应数据:login_response.json

 {
        "username":"wuya",
        "userID":22,
        "token":"asdgfhh32456asfgrsfss"
}

业务面的响应数据:parkinside.json

{
  "vplInfo":
  {
    "userID":22,
    "username":"wuya",
    "vpl":"京AJ3585"
  },
  "Parking time long":"20小时18分钟",
  "Parking fee":"20$"
}

运行包:

java -jar  moco-runner-1.3.0-standalone.jar http -p 12306 -c login.json

注意:
mock server和编写的login.json文件是在同一个目录下,-p:是指定端口 -c 是指定文件

B2

下来我们使用postman来验证下,我们mock的登录接口和业务接口是不是OK的

B3

B4

我们使用python编写一个接口测试用例,来验证换这个登录的接口和获取它的token。
实现代码:

import unittest
import requests


class MockTest(unittest.TestCase):
    def setUp(self):
        self.url = 'http://localhost:12306'

    def tearDown(self):
        pass

    def test_login(self, url='/login'):
        '''验证登录的接口'''
        data = {
            "username": "admin",
            "password": "admin",
            "roleID": 22
        }
        r = requests.post(self.url + url, json=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['username'], 'wuya')

    def getToken(self, url='/login'):
        '''登录成功后获取token'''
        data = {
            "username": "admin",
            "password": "admin",
            "roleID": 22
        }
        r = requests.post(self.url + url, json=data)
        return r.json()['token']


    def test_parkingside(self, url='/parkinside'):
        '''验证查询停车时长接口'''
        data = {
            "token": self.getToken(),
            "vpl": "AJ3585"
        }
        r = requests.post(self.url + url, json=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['Parking time long'], u'20小时18分钟')
        self.assertEqual(r.json()['Parking fee'], u'20$')

if __name__ == '__main__':
    unittest.main(verbosity=2)
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你不停地前进,每一步都是通向成功的阶梯。相信自己的能力,坚持奋斗,你将收获理想与成就。无论路途多么艰辛,只要拥抱梦想,你便能翱翔于人生的广阔天空。

只要心怀梦想,坚持努力,任何困难都不足惧。每一次汗水的流淌,都是迈向成功的一步。相信自己,勇往直前,无所不能!

只要有决心,就没有攀不越的高山;只要有毅力,就没有跨不过的沟壑;只要有勇气,就没有战胜不了的困难。相信自己,奋斗不息,成功必将属于你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值