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

news2024/11/26 20:27:14

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

什么是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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/770062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-data-picker修改成自定义样式

想使用uni-data-picker,并修改成自己自定义的颜色和样式。 1:修改样式前后样式对比 图1为原本样式,图2,3为修改后的样式 2:两种使用方法 直接使用uni-data-picker组件,会先显示请选择区域的下拉框&#…

python pandas库导出数据到excel

利用pandas库导出数据到excel,代码如下 import pandas as pd# 数据格式1,字典形式 mydic {姓名: [张三, 李四, 王五],年龄: [18, 20, 22]}# 数据格式2,列表形式 mylist [{"姓名": "张三","年龄": "11&…

el-progress组件使用,样式修改,自定义文字

正常的el-progress显示是这样的 修改后 自动计算percentage&#xff0c;format自定义显示文字 <template><div><div class"content-view"><div v-for"(item, index) in progressList" class"item-view"><el-prog…

【Java项目实战-牛客社区】--idea创建springboot工程

①. 创建springboot工程&#xff0c;并勾选web开发相关依赖。 。配置Maven ②. 定义Controller类&#xff0c;添加方法 hello。 ③. 运行测试1 使用Spring Initializr方式构建Spring Boot项目 Spring Initializr是一个Web应用&#xff0c;它提供了一个基本的项目结构&#xff…

《遗留系统现代化》读书笔记(模式篇-开篇)

文章目录 遗留系统现代化的五种策略&#xff1a;重构还是重写&#xff1f;这是一个问题遗留系统现代化的五种策略EncapsulateReplatformRehostRefactor/RearchitectRebuild/Replace其他策略 你应该选择什么样的策略&#xff1f;小结 本文地址&#xff1a; 《遗留系统现代化》读…

软件测试工程师最常用的web测试-浏览器兼容性测试

如今&#xff0c;市面上的浏览器种类越来越多&#xff08;尤其是在平板和移动设备上&#xff09;&#xff0c;这就意味着你所测试的站点需要在这些你声称支持浏览器上都能很好的工作。 同时&#xff0c;主流浏览器&#xff08;IE&#xff0c;Firefox&#xff0c;Chrome&#x…

上门家政小程序|上门家政小程序源码|上门家政系统开发

上门家政小程序的开发适合以下几个行业&#xff0c;下面将对其进行介绍并探讨其应用场景。   一、家庭保洁行业   家庭保洁是现代家庭生活中常见的需求之一&#xff0c;上门家政小程序可以为家庭保洁公司提供一个在线预约和管理平台。用户可以通过小程序方便地预约家庭保洁…

OV7670摄像头模块的使用

OV7670摄像头模块介绍 OV7670 CAMERACHIPTM 图像传感器&#xff0c;体积小、 工作电压低&#xff0c;提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总线控制&#xff0c;可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影响数据。该产 品 VGA 图像最高达到 30…

基于SSM的汽车配件销售业绩管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

SpringBoot整合SpringCloudStream3.1+版本Kafka

SpringBoot整合SpringCloudStream3.1版本Kafka 下一节直通车 SpringBoot整合SpringCloudStream3.1版本的Kafka死信队列 为什么用SpringCloudStream3.1 Springcloud架构提供&#xff0c;基于spring生态能够快速切换市面上常见的MQ产品3.1后使用配置文件的形式定义channel&am…

Python接口自动化测试之详解post请求

前言 在HTTP协议中&#xff0c;与get请求把请求参数直接放在url中不同&#xff0c;post请求的请求数据需通过消息主体(request body)中传递。 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式&#xff0c;所以其请求数据可以有不同的编码方式&#xff0c;服务…

C#线性插值,三角插值

什么是插值&#xff1f; 是什么&#xff1f;很简单&#xff01; 已知两点&#xff0c;推断中间的每一点的过程。 有什么用&#xff1f; 很简单&#xff01;位置从30到40耗时3秒求每一时刻的位置&#xff01; 1.线性插值 设v是结果&#xff0c;start是开始&#xff0c;end是结…

【贪心算法part02】| 122.买卖股票的最佳时机||、55.跳跃游戏、45.跳跃游戏||

目录 &#x1f388;LeetCode122.买卖股票的最佳时机|| &#x1f388;LeetCode55.跳跃游戏 &#x1f388;LeetCode45.跳跃游戏|| &#x1f388;LeetCode122.买卖股票的最佳时机|| 链接&#xff1a;122.买卖股票的最佳时机|| 给你一个整数数组 prices &#xff0c;其中 price…

Day 61-62 决策树(ID3)

代码&#xff1a; package dl;import java.io.FileReader; import java.util.Arrays; import weka.core.*;/*** The ID3 decision tree inductive algorithm.*/ public class ID3 {/*** The data.*/Instances dataset;/*** Is this dataset pure (only one label)?*/boolean …

Revit中如何创建水的效果及基坑?

一、Revit中如何创建水的效果? 我们在创建建筑的时候会遇上小池塘啊小池子之类的装饰景观&#xff0c;Revit又不像专业的3D软件那样可以有非常真实的水的效果&#xff0c;那么我们该如何简单创建水呢?下面来看步骤&#xff1a; 1、 在水池位置创建一块楼板&#xff0c;并将该…

C语言——文件操作(超全超详细)

C语言——文件操作 1. 什么是文件 磁盘上的文件是文件 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09; 1.1 程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;&#xff0c;目…

椒图--分析中心

护网的时候我们要把右边的开关开启。开启就会对系统全量的记录&#xff0c;包含有网络行为日志&#xff0c;就会检测我们服务器里面的链接&#xff0c;端口箭头&#xff0c;内内网暴露的链接&#xff1b;进程操作日志&#xff0c;就可以看我们系统创建了哪些进程&#xff0c;就…

【操作系统】Liunx项目自动化构建工具-make/Makefile

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 一、背景 二、Makefile 实现 Makefile依赖 依赖关系 makefile的工作原理 项目清理 补充&#xff1a; .PHONY是什么&#xff1f; Linux如何进行多行注释&#xff1a; 说明&#xf…

app 元素定位失败了,怎么办?一看我的做法,惊呆了!

粉丝们在日常的android app自动化测试工作当中&#xff0c;元素定位时会遇到以下类似的报错&#xff1a; 然后来问博主&#xff0c;这是啥情况&#xff1f; 我一般都会送上亲切的关怀&#xff1a; 1&#xff09;adb能识别到设备吗&#xff1f; 2&#xff09;设备有被其它的程…

VUE+element Input框 实现输入内容可自适应文本高度,换行(空格换行,enter发送)阻止文本域的回车事件

需求 输入框实现输入内容自适应高度 以及可以换行 使用官方文档提供的属性 代码 <el-input clearable autosize type"textarea" :placeholder"$t(navbar.pleaseInput)"v-model"inputText" change"inputChange" keyup.enter.na…