测试日常——Charles的compose和map local
在测试过程中,由于所依赖提供数据方未上线,我们不得不使用线下数据来进行测试。恰好今天遇到了这个情况,所有趁热打铁总结一下使用Charles来解决一些线下数据的小问题。
我测试过程中遇到线下数据最大的问题就是,数据很少很少,所以有时一个case中可以测到的,可能需要我再找测试数据要找一阵子,当然,面对这个问题,最方便的是问提供数据方的开发或测试,这个就不说了,但是有时候也学会怎样自己尝试处理。
比如,今天我遇到的情况是,在访问小区详情页面时,它会向服务器发送2个请求,request1-小区详情和request2-周边小区推荐,它们分别同时返回json1-小区详情数据和json2-周边小区列表数据,然而此时我的需求是,寻找到json2的某个数据(就是列表中的某个小区)进行下一步测试交互,所以,前端必须展示json2的数据我才能够测试交互。当我找到可测试的json2数据时,我自然而然的就想到去修改request2的参数获取json2,但是request2这个请求并不能够在前端浏览器的url进行修改,此时应该怎么办呢?
总结一下,需求就是,无法修改请求参数的情况下,需要该请求的响应在前端展示
我的思路(倒推)
1、我需要在json2前端页面展示,怎么办?可以把想要展示的响应结果,也就是json2保存在本地后,使用map local
2、那接下来就是怎样获取json2呢?在前端页面访问页面,依旧同时会发送两个请求,request1-小区详情和request2-周边小区推荐,我需要request2,虽然它的参数和我需要的不一样,但是我们可以使用compose修改参数,并获取到我们想要的那个json就可以完成了
具体操作,顺序跟思路反着就ok啦:
1、抓取request2后,compose进行修改参数
①在request2上右键,点击compose
②会多出来一个请求,只是图标变成笔,在右侧进行修改参数,修改完成后,点击“execute”发送编辑的请求
③在下面会有一条构造的新请求,并且右侧有响应数据json2
④保存该响应结果到本地
2、使用map local
①先复制之前访问页面时抓取的request2的url
②tools--map local
③分别把url粘贴到map from,choose之前保存的json2文件
3、一切就绪后,刷新之前访问的页面,或者重新进入之前访问的页面,想要的数据已经展示在前端啦~~
补充:
关于map local:也可以修改保存的response数据在前端展示,同理同理。。。
关于compose:之前想着使用postman发送参数获取响应来着,但是这个接口需要校验sign,一个参数值变了,sign也变了,而我又不会在postman中写sign值的算法脚本,并且postman中的单个响应结果貌似无法导出,只能导出collection,经过了曲折的道路我才想到了compos,可以说非常蠢了,compose中修改参数,sign值自动就变了,不用再为sign头疼啦~~~~