• Mock测试&Postman mockserver详细教程


    一、关于Mock测试

    1、什么是Mock测试?

    Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取的比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。

    2、为什么要进行Mock测试?

    Mock是为了解决不同的单元之间由于耦合而难于开发、测试的问题。所以,Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。

     

    3、Mock对象适用场景

    (1)需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑。

      -----比如被测代码中需要依赖第三方接口返回值进行逻辑处理,可能因为网络或者其他环境因素,调用第三方经常会中断或者失败,无法对被测单元进行测试,这个时候就可以使用mock技术来将被测单元和依赖模块独立开来,使得测试可以进行下去。

    (2)被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理。

      1)前后端项目中,后端接口开发完成之前,接口联调;

      2)依赖的上游项目的接口尚未开发完成,需要接口联调测试;

      -----比如service层的代码中,包含对Dao层的调用,但是,DAO层代码尚未实现

    (3)被测单元依赖的对象较难模拟或者构造比较复杂。

      -----比如,支付宝支付的异常条件有很多,但是模拟这种异常条件很复杂或者无法模拟,比如,查询聚划算的订单结果,无法在测试环境进行模拟。

     

    4.举例

     使用Fiddler进行Mock测试

    (1)接口抓包-----找到要mock的接口

    以掘金首页为例,找到下面的接口 https://gold-tag-ms.juejin.im/v1/categories

    (2)复制接口数据到本地

    在接口上进行右键点击,选择save -> …and Open as Local File -> 默认会保存至桌面,示例中的数据,保存到了桌面的test.json

    (3)修改数据

    修改保存到本地的json文件,示例中仅修改了页面的标签数据。

    (4)替换json文件

    在web session 面板中找到对应的请求,然后将其拖到AutoResponder面板中,在RuleEditor中单击“Find a file...”,选择本地json文件的路径。

    (5)激活规则

    选中“Enable rules”,激活规则。选中“Unmatched requests passthrough",放行不匹配的HTTP请求。

    (6)save,刷新页面

    单击“Save”按钮。只需修改本地保存的json文件,然后刷新浏览器(或直接访问接口),就可以看到效果了。

     

     首先说下mockserver是干啥的,从英文翻译理解就是模拟一个服务器,通俗点说就是给你针对某个特定的接口,返回你自定义的返回值的工具,笔者是经常用在客户端对后台数据验证的模拟上,非常方便。

    1.发送一个request

    发送请求之后在History标签下保存了请求的数据,但是没有保存response 数据

    2.将request保存到一个Collection中

    点击Save 按钮,将请求数据保存到Collection中

    弹出对话框,编辑请求名称和接口描述,选择一个Collection或者新建一个

    3.保存请求的响应作为一个example

    点击 Save Response 按钮,保存响应信息

    输入mock 接口名称,点击Save Example 按钮,完成接口返回相信保存

    4.为Collection创建一个mock

    点击Collection右侧向右的">",再点击Mocks标签,点击Add a mock按钮

    弹出对话框,可以选择Environment,点击 Mock this collection 按钮

    mock server新建完成,页面展示了当前mock server 的host地址

    5.使用mock server 发送请求

    使用mock server 的host地址,请求我们刚跟mock的get接口,得到response

    6.编辑mock接口的response数据

    去刚刚mock的Collection打开mock的接口,点击右上角“Examples”按钮,下拉展示了基于这个接口刚刚保存的examples,点击“mock test practice”(我刚刚保存命名的example name)

    我在response中新增了一个content字段,点击 “Save Examples”,保存修改后的数据

    再次访问刚刚的mock服务,可以看到response中展示了新增的字段content

    7.设置私有mock服务

    在Collection上添加mock服务,弹出的对话框上选中“Make mock server private”

    点击“Get your Postman Pro API Key”,跳转到浏览器页面获取key,点击“Mock this collection”按钮完成mock 建立

    直接请求刚刚的mock接口报错,提示header需要x-api-key

    将从浏览器的key值添加到header 部分的x-api-key,发送请求获得返回信息

    转载:https://blog.csdn.net/testdeveloper/article/details/80559538

  • 相关阅读:
    ubuntu16.04截图工具Shutter安装,设置快捷键
    cd命令和roscd命令的区别,并解决环境变量问题
    ubuntu16.04+kinetic 环境下进行turtlebot2安装+gazebo7.16
    【转载】windows 下TexLive的安装和配置
    Linux 环境变量 /etc/profile 和 ~/.bashrc的区别和使用
    rotors无人机仿真(古月居)——问题记录
    操作select
    #if DEBUG
    (网上看的)asp.net使用uploadify上传出现的IO Error问题
    sqlserver2008附加sqlserver2005数据库目录出错,需要设置mdf后缀文件夹“管理员取得所有权”,并用windows管理权限登录数据库不要用sa
  • 原文地址:https://www.cnblogs.com/hehehe-wy7/p/14032771.html
Copyright © 2020-2023  润新知