java 单机接口限流处理方案
337
2022-12-27
本文目录一览:
python+requests对app和微信小程序进行接口测试
对于web端和app端的接口测试来说,他们都是通过请求方法,url和传递的body参数进行接口请求,区别web和app的区别就是header请求的不同。不同的地方在于header中的User-Agent参数。
web常用的User-Agent参数:
Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16
Firefox :
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10
app常用的User-Agent参数:
IPhone:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
Android
Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
一、怎么进行app和微信小程序的接口测试
对于接口测试来说可以使用两种方式进行接口测试,一种是工具进行接口测试,一种是自己编写脚本进行接口测试。
进行重点给大家说一下使用python+requests脚本进行手机app和微信小程序的接口测试
二、使用python+requests进行app和微信小程序接口测试
脚本编写和测试web端的一样,唯一改动的地方就是header头部请求中User-Agent参数需要改成手机请求。
这样就是访问百度的手机端的请求了。
三、使用接口测试工具进行app和微信小程序接口测试
一样更改header头部请求中的user-agent参数,这两个请求分别的模拟Android和iOS,可以根据自己的情况进行选择。
选择Android进行请求访问
这就是app和微信小程序接口测试的两种方法
本地小程序开发工具测试请求接口都很正常,使用预览和真机调试功能在手机上运行请求接口总是失败。
小程序上线后,部分手机请求接口正常,部分手机请求接口失败,将请求接口复制到谷歌浏览器中查询总是成功的。
restful 接口定义为: https://ip:port/bus/:router_name ,其中 router_name 是个变量。实际请求接口为: https://ip:port/bus/993路 ,可以看到:请求地址中的变量 router_name 被 993路 给替换了。问题就出在这里, 请求地址中含有中文 。
在 小程序开发工具 、 谷歌浏览器 和 部分请求成功的手机 上最终发出的请求都会对请求地址中的中文汉字进行编码,如下:
在 开发工具中预览功能 、 开发工具中真机调试功能 和 部分请求不成功的手机 上最终发出的请求并不会对中文进行编码,如下:
上面分析了请求接口失败是因为部分手机没有对请求地址中的中文进行编码,解决方法为利用 js 自带的 api encodeURIComponent() 处理。
有一点需要注意:不能对整个请求地址进行编码,那么的话会对所有除字母、数字以外的符号进行编码,会变成下面这样,实际请求中仍然会报错。
在处理 restful 接口过程中,有一步用具体指(如: 991路 )替换请求地址中的变量(如: https://ip:port/bus/:router_name 中的 :router_name ),此时先对 991路 进行编码再替换变量值即可。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~