社区的各位伴大家好! 大家好,在eTest_v1.1.29 版本发布后,带来了两个重大的更新, 支持上传文件测试用例, 支持mock数据,模拟特殊测试场景 今天我们继续聊一下 mock数据测试。
首先了解一下什么是mock
数据mock是指在软件开发过程中,创建并使用模拟数据(即非真实数据)的过程。这些数据通常用于在开发、测试或演示阶段模拟真实数据源的行为。这些数据与实际业务数据具有相似的数据结构和字段,但并非真实数据。
数据mock的主要目的是在软件开发早期阶段提供可用的虚拟数据,以便开发人员在没有实际数据的情况下进行系统的构建和测试。这样,开发人员可以模拟真实场景,测试应用程序在不同情况下的表现,从而提前发现潜在的问题并进行修复。
数据mock在前端开发、UI设计和演示等方面都有广泛的应用。例如,在前后端分离的开发模式下,前端开发人员可以使用mock数据模拟后端接口的返回数据,以便独立进行开发和测试。此外,mock数据还可以用于创建虚拟的用户界面,以展示产品的功能和交互效果。
总之,数据mock是一种在软件开发过程中模拟真实数据的技术,它提供了一种快速、可靠和独立的方式来进行开发、测试和演示。
数据mock在测试中的重要性
-
提高测试效率: 通过mock技术,测试人员可以快速创建模拟数据,从而避免在实际环境中等待真实数据的生成和准备。这大大缩短了测试周期,提高了测试效率。
-
隔离依赖: 在自动化测试中,经常需要依赖外部系统或接口提供数据。然而,这些依赖可能不稳定或难以控制,导致测试失败。通过使用mock数据,测试人员可以隔离这些依赖,确保测试的稳定性和可靠性。
-
模拟复杂场景: 在实际环境中,可能很难模拟某些复杂场景,如网络延迟、数据异常等。通过mock技术,测试人员可以轻松地创建这些场景的模拟数据,从而更全面地测试系统的性能和稳定性。
-
降低测试成本: 使用mock数据可以减少对真实环境的依赖,从而减少对硬件、网络等资源的投入。此外,mock数据还可以减少测试过程中的错误和异常,降低测试成本。
-
支持测试驱动开发(TDD): 在TDD中,测试人员需要先编写测试用例,然后再实现代码以满足这些用例。通过使用mock数据,测试人员可以在代码实现之前创建模拟数据并编写测试用例,从而推动开发过程的顺利进行。
-
测试边界情况: mock技术可以方便地创建各种场景和边界情况,以验证被测系统在不同条件下的行为。这有助于提高测试的覆盖率和质量,确保系统在各种场景下都能正常运行。
-
提高测试可重复性和稳定性: 使用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,一起来探索测试的乐趣,大家有什么想法或者更好的建议可以给我们留言,一定会在第一时间回复大家,欢迎骚扰