前端 API 接口数据模拟 (Mock)

前端 API 接口数据模拟 (Mock),第1张

在前端开发的过程中,会碰到以下一些问题:

为了解决此类问题,需要使用 mock 数据和 mock 服务器来提供支持。

很多前端框架,如 Reactor、 Angular、Vue 等都带有 mock 服务,以方便开发,这里介绍的是一个独立的小工具,可以在开发者自己的机器上方便的部署和运行,模拟后端接口的返回,以方便前端模拟各种数据。特性如下:

该数据即 files 目录下面 _api_heartbeat_getjson 的内容。

直接按快捷键 CTRL+C 来停止。

GET >




Mock介绍









1找到要替换的对象:我们需要测试的是visit_ustack这个函数,那么我们需要替换掉send_request这个函数。


2实例化Mock类得到一个mock对象,并且设置这个mock对象的行为。在成功测试中,我们设置mock对象的返回值为字符串“200”,在失败测试中,我们设置mock对象的返回值为字符串"404"。


3使用这个mock对象替换掉我们想替换的对象。我们替换掉了clientsend_request


4写测试代码。我们调用clientvisit_ustack(),并且期望它的返回值和我们预设的一样。


上面这个就是使用mock对象的基本步骤了。在上面的例子中我们替换了自己写的模块的对象,其实也可以替换标准库和第三方模块的对象,方法是一样的:先import进来,然后替换掉指定的对象就可以了。



Mockrunner用在J2EE环境中进行应用程序的模拟测试。它不仅支持Struts actions,servlets,过滤器和标签类,还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。


Mockrunner扩展了JUnit并模拟了必要的行为,而无需调用实际的基础结构。它不需要正在运行的应用程序服务器或数据库。此外,它不会调用web容器或Struts ActionServlet。它非常快速,使用户可以在测试的所有步骤中 *** 纵所有涉及的类和模拟对象。它可以用于为基于J2EE的应用程序编写非常复杂的单元测试,而不会产生任何开销。Mockrunner不支持任何类型的容器内测试。


Mockrunner不会读取任何配置文件,例如webxml或struts-configxml。您可以使用Mockrunner API指定所有参数。因此,可以将servlet,过滤器,标签和Struts动作作为可重用组件进行测试,而不管您在一个或另一个应用程序中使用的设置如何。无法测试配置文件中的定义。如果要这样做,可以将StrutsTestCase用于基于Struts的应用程序或Cactus。


Mockrunner支持Java版本从13到16以及J2EE 13,J2EE 14和JavaEE5。尚不支持EJB 30。Mockrunner支持Struts版本11、12和13。


下载地址:Mockrunner download | SourceForgenet





最后:可能给你带来帮助的教程软件测试最新自学教程

MockAPI顾名思义是一个模拟的API,它可以模拟真实API的请求并返回数据。MockAPI可用于前后端分离,在项目初期前端可使用MockAPI对系统进行开发,而不需要依赖后端开发好正式的API后才开始进行前端开发。

MockAPI可通过搭建MockServer服务器来实现创建。网上有很多教程,一般需要安装nodejs、Mock-API等。搭建比较简单,但前置条件需要服务器或使用虚拟机。
API管理工具可以彻底解决服务器搭建问题,他们有现成的生成MockAPI的功能。以下以Eolinker为例,实现快速创建MockAPI并进行测试。
在Eolinker的API管理界面,新建一个API,若已经存在swagger文档,可快速导入。

手动创建一个用于用户登录的API,填写API所需的信息,其中请求参数有user_name、user_password,详细内容如下:

保存后可以查看详细的API文档。

在API文档上方可以找到MockAPI选项,创建MockAPI,当用户名为percy时,则MockAPI返回用户名不存在。

至此MockAPI就创建成功了,前端开发人员可开始调用MockAPI的url进行开发。

下面我们对该MockAPI进行测试,Eolinker不仅提供了API文档,还提供了测试功能。输入MockAPI的url与正确请求格式与参数,测试后可查看到成功返回设置的返回信息。

使用API管理工具不仅可以快速进行Mock与测试,还可以对API进行管理。相比较于传统的API文档,API管理工具更灵活、强大,为团队创造的价值也更加明显。
演示工具: >作为动词,Mock 是模拟、模仿的意思。

作为名词,Mock 是能够模仿真实对象行为的模拟对象。

那么,在软件测试中,Mock 所模拟的对象是什么呢?

模拟的是 SUT(System Under Test:被测系统) 的依赖,而不是其本身。

比如,我要测试 A,但 A 依赖 B,要模拟的对象就是 B。

为什么要模拟 B 呢?

提高 A 的测试覆盖率: 通过 Mock 模拟 B 返回的正常和异常的结果,使用 A 的测试更充分。

避免 B 的因素对 A 产生影响: 当 B 因各种原因无法正常使用时,导致 A 无法测试。

提高 A 的测试效率: B 的真实行为可能很慢,但模拟可以很快。

Mock 的两大功能:

记录真实的调用信息

生成模拟的返回信息

使用 Mock 的问题是什么?

可能导致问题遗漏: 毕竟是模拟的,是理想可预见的情况,真实的情况可能更复杂。

可能导致维护成本变高: 接口变更 Mock 用例要跟着改,改错和漏改都可能出问题。

常见的 Mock 类型:

方法级别: Mock的对象是一个函数调用,例如:获取系统环境变量。

类级别: Mock 的对象是一个类,例如:一个 >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10748427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存