Mock测试

1、什么是mock测试

Mock 测试就是在测试活动中,对于某些不容易构造或者不容易获取的数据/场景,用一个Mock对象来创建以便测试的测试方法。

2、Mock测试常见场景

(1)无法控制第三方系统接口的返回,返回的数据不满足要求

(2)依赖的接口还未开发完成,就需要对被测系统进行测试

3、Mock测试的缺点

测试过程中如果大量使用Mock,mock测试的场景失去了真实性,可能会导致在后续的系统性测试时才发现bug,使得缺陷发现的较晚,

可能会造成后续修复成本更大

4、Mock工具

Fiddler Postman

5、实战

postman 创建一个mock server

步骤一:在左上角有一个New,点开后会有下拉列表展示,选择里面的Mock Server

在这里插入图片描述

步骤二:勾选Request-Body(请求内容)

在这里插入图片描述

步骤三:填写mock测试的各个请求参数,之后点击Next下一步

步骤四:创建mock server

a.填写Mock服务的名称(可用中文)

b.勾选Make this Mock server private,可以不勾选;如果勾选了,这个Mock服务就只能你自己私有访问,此时创建的Mock Service需要

一个x-api-key,把生成的key放到header中,具体生成x-api-key后面会介绍

c.选择环境,如果没有合适的环境可以选择no environment

d.勾选 Save the mock server URL as an environment variable

在这里插入图片描述

步骤五:点击here获取mock 接口密钥,登陆浏览器设置,然后点击close

在这里插入图片描述

a.黄色部分就是Mock服务器地址,这个mock server是postman在自己的服务器上为我们创建的,无论我们是否打开postman,我们都

可以直接用这个地址来访问mock的API,如我们通过Jmeter也能对这个接口进行访问

b.如果需要对这个Mock服务创建API key,可以点击here打开一个浏览器页面,生成一个API key,(注意,这个key值只出现一次,复制

好以后最好新建一个记事本粘进去),后面访问这个接口的时候,必须在请求头里带上 API key,才能访问成功,相当于一个接口鉴权的

作用。

x-api-key获取地址:https://web.postman.co/settings/me/api-keys?

在这里插入图片描述

步骤六:Mock服务创建成功

创建成功后回到postman主界面,在右侧collection集合出出现了一个以刚才mock server命名相同的collection,点击这个集合右上角的箭

头,选择mock,出现mock server的地址。

在这里插入图片描述
这个{{url}}其实就是我们的Mock服务地址,鼠标放上去可以显示,如果使用postman进行测试,使用时地址栏内的{{url}}一定要带着,如果

使用其它工具如Jmeter,可以使用{{{url}}变量中具体的值,也即如上图中的https://3b84b4c3-de01-4016-83aa-

60943c1984b8.mock.pstmn.io:在这个mock server地址,其后面路径名称以及层级均可自定义,但要记得设置对应的example并且保存

后再运行。

在这里插入图片描述
步骤七、修改Mock Server

如果需要修改Mock Server,点击进入Mock Server服务,点击右上角的Examples就可以修改了

a.选择环境

b.选择Examples,默认为default,如果仅仅要修改当前的Mock Service,则选择Default

c.如果要在此基础上新增Mock Service,则选择Add Example,新增或者修改mock service,并保存为新的mock service,注意接口地址

中{{url}}/test/testdemo,前面要带上路径符号/

在这里插入图片描述

在这里插入图片描述

步骤 八:访问Mock服务,可以使用 postman 、jmeter等接口测试工具进行访问,这里选择使用postman进行访问

a.创建一个Http服务请求 “Add Request”,Request name可以命名为中文,保存

在这里插入图片描述

b.选择环境:点击右上角眼睛旁的下拉框选择环境,此处刚才创建Mock server时候新增了一个和mock server命名相同的的环境,选择

环境后点击眼睛,还可以看到该环境下接口地址的具体信息

在这里插入图片描述
在这里插入图片描述

c.服务请求界面输入接口地址、请求方法、请求header和请求body等内容,点击save,点击send按钮,可查看服务请求和响应内容,此处

响应的内容就是前面创建Mock服务定义的响应内容,响应成功状态码就是Mock服务定义的响应状态码,如:Status:200

在这里插入图片描述
d、创建一个Http服务请求 “Add Request”,也可以对步骤七中新增/修改的Mock Service(Example)发送服务请求,步骤同上

步骤九、使用Jmeter访问Mock服务

备注:使用Jmeter进行接口测试不存在选择环境

在这里插入图片描述

步骤十:其它-环境管理,对于一些无用的环境,可以删除

在这里插入图片描述

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,Mock测试是一种常见的测试方法,用于模拟对象或服务器的行为,以便进行自己想要的测试Mock测试主要有两种场景。 第一种场景是Mock一个对象,通过写入预期的值来进行测试。这种方法主要适用于单元测试,即针对特定语言开发的程序,必须使用基于该语言的Mock方案来实现。例如,Mockito是一种针对Java的Mock框架,适用于单元测试。\[1\] 第二种场景是Mock一个服务器,构造一个虚假的服务来返回预期的结果,以进行测试。这种方法主要适用于接口测试和性能测试Mock方案与程序使用的语言无关,可以使用Java、Python等语言来实现。例如,可以搭建一个Mock服务器来模拟接口的行为,适用范围没有限制。\[2\] 在Java中进行Mock测试时,可以使用一些框架和注解来简化测试代码的编写。例如,使用Mockito框架可以使用注解@RunWith(MockitoJUnitRunner.class)和@Mock来模拟对象的行为,使用@InjectMocks来注入被测试对象。下面是一个示例代码: ```java @RunWith(MockitoJUnitRunner.class) @PrepareForTest(MyService.class) public class UserServiceTest { @InjectMocks private MyService myService; @Mock private MyRepository myRepository; @Mock private YourRepository yourRepository; @Test public void testInjectMocks() { System.out.println(myService.getMyRepository().getClass()); } } ``` 在这个示例中,使用了@RunWith(MockitoJUnitRunner.class)注解来运行测试,并使用@Mock注解来模拟对象的行为。@InjectMocks注解用于注入被测试对象。\[3\] 总结起来,Java中的Mock测试是一种常见的测试方法,可以用于模拟对象或服务器的行为,以进行自己想要的测试。可以使用Mockito等框架和注解来简化测试代码的编写。 #### 引用[.reference_title] - *1* *2* [走进Java接口测试Mock(概念篇)](https://blog.csdn.net/zuozewei/article/details/84892008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [JAVA测试类注解以及Mock测试](https://blog.csdn.net/m0_67793822/article/details/127387243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值