etest 高级变量支持Mock数据

社区的各位伴大家好! 大家好,在eTest_v1.1.29 版本发布后,带来了两个重大的更新, 支持上传文件测试用例, 支持mock数据,模拟特殊测试场景 今天我们继续聊一下 mock数据测试。

首先了解一下什么是mock

数据mock是指在软件开发过程中,创建并使用模拟数据(即非真实数据)的过程。这些数据通常用于在开发、测试或演示阶段模拟真实数据源的行为。这些数据与实际业务数据具有相似的数据结构和字段,但并非真实数据。

数据mock的主要目的是在软件开发早期阶段提供可用的虚拟数据,以便开发人员在没有实际数据的情况下进行系统的构建和测试。这样,开发人员可以模拟真实场景,测试应用程序在不同情况下的表现,从而提前发现潜在的问题并进行修复。

数据mock在前端开发、UI设计和演示等方面都有广泛的应用。例如,在前后端分离的开发模式下,前端开发人员可以使用mock数据模拟后端接口的返回数据,以便独立进行开发和测试。此外,mock数据还可以用于创建虚拟的用户界面,以展示产品的功能和交互效果。

总之,数据mock是一种在软件开发过程中模拟真实数据的技术,它提供了一种快速、可靠和独立的方式来进行开发、测试和演示。

数据mock在测试中的重要性

  1. 提高测试效率: 通过mock技术,测试人员可以快速创建模拟数据,从而避免在实际环境中等待真实数据的生成和准备。这大大缩短了测试周期,提高了测试效率。

  2. 隔离依赖: 在自动化测试中,经常需要依赖外部系统或接口提供数据。然而,这些依赖可能不稳定或难以控制,导致测试失败。通过使用mock数据,测试人员可以隔离这些依赖,确保测试的稳定性和可靠性。

  3. 模拟复杂场景: 在实际环境中,可能很难模拟某些复杂场景,如网络延迟、数据异常等。通过mock技术,测试人员可以轻松地创建这些场景的模拟数据,从而更全面地测试系统的性能和稳定性。

  4. 降低测试成本: 使用mock数据可以减少对真实环境的依赖,从而减少对硬件、网络等资源的投入。此外,mock数据还可以减少测试过程中的错误和异常,降低测试成本。

  5. 支持测试驱动开发(TDD): 在TDD中,测试人员需要先编写测试用例,然后再实现代码以满足这些用例。通过使用mock数据,测试人员可以在代码实现之前创建模拟数据并编写测试用例,从而推动开发过程的顺利进行。

  6. 测试边界情况: mock技术可以方便地创建各种场景和边界情况,以验证被测系统在不同条件下的行为。这有助于提高测试的覆盖率和质量,确保系统在各种场景下都能正常运行。

  7. 提高测试可重复性和稳定性: 使用mock对象可以消除外部依赖对测试结果的影响,使测试变得可重复和稳定。这有助于减少测试的偶尔失败,并提供一致的测试结果,从而提高测试的可信度。

快速上手

我们以微信文章的为例,首先我们已经录制了当前页面的测试用例

js 复制代码
https://mp.weixin.qq.com/s/o6cWOibGnHVpPUaqUV1cHA

可以看到底部有三条推荐信息, 按f12 或者 鼠标右键选择检查 打开开发者模式,查看网络请求,获取对应的接口信息

然后按照数据格式拼接mock信息

mock 数据结构

json 复制代码
[
  {
    "url": "xxx.xxx.come/aa/bb/",
    "status": 200,
    "method": "GET",
    "contentType": "application/json",
    "body": {}
  }
] 

字段信息

key 描述 是否必填
url mock 数据的url信息 Y
status mock 数据的返回状态码 Y
method mock 数据的请求方式 Y
contentType mock 数据的返回类型 Y
body mock 数据返回值 Y

获取到信息,可以随意修改需要的数据信息,比如我们修改一下title信息

json 复制代码
[
	{
		"url": "https://mp.weixin.qq.com/mp/relatedarticle",
		"status": 200,
		"method": "GET",
		"contentType": "application/json",
		"body": {
			"article_size": 0,
			"base_resp": {
				"exportkey_token": "",
				"ret": 0
			},
			"list": [
				{
					"avatar": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5ewWQao972vMLiax67bproIib0MxwDuoLX0Hnnph4saUgA/0",
					"bizuin": 3881603653,
					"comment_num": 0,
					"cover": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/cAd6ObKOzEC9diafX6SJNAmqeHe4DBlICiarib5F3sOxyxFAebT6URsicdoesFgDPDxgjsNL53fYAbkZ1HEPuTAZ4Q/0?wx_fmt=jpeg",
					"digest": "本文将对如何优化项目构建速度进行详细介绍",
					"exptype": "timeline_recommend_article_extendread_samebiz",
					"ext_info": "{\"rec_info\":{\"model_id\":20050,\"rank_rk\":\"20010#20050:25991:0:100:1\",\"recall_rk\":\"11008:5:0\",\"prerank_rk\":\":0:0:0:0\",\"rec_reason\":{},\"related_score\":43600,\"rank_extra\":\"20010_preds:13211#20010_rule_bizqualitygrading:3#20010_rule_article_quality_grading_v2:3#20050_preds:40234\"},\"do_not_report\":0}",
					"idx": 1,
					"is_original": 1,
					"is_paid": 0,
					"is_pay_subscribe": 0,
					"is_readed": 0,
					"item_show_type": 0,
					"keyword": [],
					"mid": 2247510746,
					"nickname": "奇舞精选",
					"old_like_num": 0,
					"pay_cnt": 0,
					"pay_friend_cnt": 0,
					"preview_percent": 0,
					"read_num": 0,
					"recall_type": 11008,
					"send_time": 1708943831,
					"title": "Vue项目构建优化---来自本地化mock",
					"url": "http://mp.weixin.qq.com/s?__biz=Mzg4MTYwMzY1Mw==&mid=2247510746&idx=1&sn=1d52f45cd799aab411aa0ffd56707b7c&chksm=ceef0f37670390092c7d6400051aed9f166233c24239ecac5ad217d920a880da723d20c8baf8&scene=132&exptype=timeline_recommend_article_extendread_samebiz#wechat_redirect",
					"username": "gh_4ef2f1ed6b20"
				},
				{
					"avatar": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM66PUk5SLDBkIemEib3B2GTWryabuClnia3GtLOiavl0ROzA/0",
					"bizuin": 3936551498,
					"comment_num": 0,
					"cover": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/Z1ccUfICKZicbfyFhOGzxDcBSdAxI6HjClGAov44DiaOcSBajLj7zjxl6VicAibeqtakdkfGNEHiaJgADHTTdZmlvBg/0?wx_fmt=jpeg",
					"digest": "",
					"exptype": "timeline_recommend_article_extendread_extendread_for_notrec",
					"ext_info": "{\"rec_info\":{\"model_id\":20050,\"rank_rk\":\"20010#20050:29643:0:5:1\",\"recall_rk\":\"20110:61:0\",\"prerank_rk\":\"20010#20050:30683:0:300:2\",\"rec_reason\":{},\"related_score\":51979,\"prerank_extra\":\"20010_preds:14248#20010_rule_picture_biz_quality_level_planb:2#20010_rule_article_quality_grading_v2:2#20010_rule_FID_U_req_RelatedArtical_scene:0#20050_preds:49659#mid_scene:2#mid_rscore:0.50341#mid_related_label:1\",\"rank_extra\":\"20010_preds:13915#20010_rule_picture_biz_quality_level_planb:2#20010_rule_article_quality_grading_v2:2#20010_rule_FID_U_req_RelatedArtical_scene:0#20050_preds:49659#mid_scene:2#mid_rscore:0.50341#mid_related_label:1\"},\"do_not_report\":0}",
					"idx": 3,
					"is_original": 1,
					"is_paid": 0,
					"is_pay_subscribe": 0,
					"is_readed": 0,
					"item_show_type": 0,
					"keyword": [],
					"mid": 2247485479,
					"nickname": "架构汪",
					"old_like_num": 0,
					"pay_cnt": 0,
					"pay_friend_cnt": 0,
					"preview_percent": 0,
					"read_num": 0,
					"recall_type": 20110,
					"send_time": 1709690603,
					"title": "掘金系统源码(可商用)---来自本地化mock ",
					"url": "http://mp.weixin.qq.com/s?__biz=MzkzNjU1MTQ5OA==&mid=2247485479&idx=3&sn=09b69677a9104b62ebd9c9bc778746e0&chksm=c3dcc3e825ffb3abfb6086e544a5fd5ecce3a5d001a262ee029501a317ef2b42577c8477bf31&scene=132&exptype=timeline_recommend_article_extendread_extendread_for_notrec#wechat_redirect",
					"username": "gh_1c5f058dc4e9"
				},
				{
					"avatar": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5GBcKNWicpEHVH51XYAefb2McIK6tUJ8M2GIkzoRVDWoQ/0",
					"bizuin": 3090454323,
					"comment_num": 0,
					"cover": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/jaS086sPZzA0DOgvDGwSnIJHsyPicfVKpa8ArTkmBRcpJ1w3sJwuVBJFSRFCFSwT5s8VRV2SNaeJ5Eyqp1GBtRw/0?wx_fmt=jpeg",
					"digest": "H3C路由器是一种高性能的网络设备,它可以实现多种网络功能,如路由转发、安全防护、QoS等。",
					"exptype": "timeline_recommend_article_extendread_extendread_for_notrec",
					"ext_info": "{\"rec_info\":{\"model_id\":20050,\"rank_rk\":\"20010#20050:28474:0:5:2\",\"recall_rk\":\"20100:34:0\",\"prerank_rk\":\"20010#20050:29241:0:300:3\",\"rec_reason\":{},\"related_score\":50081,\"prerank_extra\":\"20010_preds:13741#20010_rule_picture_biz_quality_level_planb:2#20010_rule_article_quality_grading_v2:0#20010_rule_FID_U_req_RelatedArtical_scene:0#20050_preds:49401#mid_scene:2#mid_rscore:0.50599#mid_related_label:1\",\"rank_extra\":\"20010_preds:13553#20010_rule_picture_biz_quality_level_planb:2#20010_rule_article_quality_grading_v2:0#20010_rule_FID_U_req_RelatedArtical_scene:0#20050_preds:49401#mid_scene:2#mid_rscore:0.50599#mid_related_label:1\"},\"do_not_report\":0}",
					"idx": 1,
					"is_original": 0,
					"is_paid": 0,
					"is_pay_subscribe": 0,
					"is_readed": 0,
					"item_show_type": 0,
					"keyword": [],
					"mid": 2693163466,
					"nickname": "JinGeW",
					"old_like_num": 0,
					"pay_cnt": 0,
					"pay_friend_cnt": 0,
					"preview_percent": 0,
					"read_num": 0,
					"recall_type": 20100,
					"send_time": 1709741219,
					"title": "h3c路由器配置(基础设置)---来自本地化mock ",
					"url": "http://mp.weixin.qq.com/s?__biz=MzA5MDQ1NDMyMw==&mid=2693163466&idx=1&sn=11f9d9e6cf9cec7d87a96e792c95c1c9&chksm=b498c0bec40944cc479ed975e6ca9456a9ebacabdf011dc8d2a654fe8f6f0378136b17dd1c74&scene=132&exptype=timeline_recommend_article_extendread_extendread_for_notrec#wechat_redirect",
					"username": "gh_c4026f256733"
				}
			],
			"report_info": "{}",
			"show_rec_reason": 0
		}
	}
]

打开测试工具 选择全局配置 点击高级配置

点击mock数据,把模拟的数据复制到编辑框,保存即可,保存数据一定要确认数据格式正确哦~~~

然后还需要在全局配置中 开启mock 数据,即可

再次运行测试,我们发现 推荐文章的三条数据已经改成了,我们的本地的数据mock

结束

到此我们就完成了mock 功能的配置,是不是超级简单~~,大家都学废了吗,欢迎大家体验eTest最新版本, 觉得项目对大家有用也欢迎大家给个star,一起来探索测试的乐趣,大家有什么想法或者更好的建议可以给我们留言,一定会在第一时间回复大家,欢迎骚扰

相关推荐
lsjweiyi13 小时前
极简AI工具箱网站开源啦!
opencv·开源·微信支付·支付宝支付·百度ai·极简ai工具箱·ai图像处理
开源社14 小时前
一场开源视角的AI会议即将在南京举办
人工智能·开源
FreeIPCC14 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
海害嗨14 小时前
阿里巴巴官方「SpringCloudAlibaba全彩学习手册」限时开源!
学习·开源
生命是有光的14 小时前
【开源风云】从若依系列脚手架汲取编程之道(八)
开源
HuggingFace16 小时前
Halo 正式开源: 使用可穿戴设备进行开源健康追踪
开源·健康追踪
程序员小范18 小时前
孙玲:从流水线工人到谷歌程序员
人工智能·程序员·谷歌·远程工作
时光追逐者20 小时前
.NET 9 中 LINQ 新增功能实操
开发语言·开源·c#·.net·.netcore·linq·微软技术
程序员鱼皮21 小时前
我发现很多程序员都不会打日志。。
计算机·程序员·开发·编程经验·java程序员