一、弱网问题
弱网测试概念:
按照移动的特性,一般应用低于 3G、弱信号的 Wifi 可以划分为弱网
弱网测试是健壮性测试的重要部分,对移动端测试必不可少
弱网测试主要进行弱网状态下的功能测试,同时关注用户体验
弱网速度:3G、低于2G
模拟弱网:Charles模拟弱网
web端模拟弱网
1、proxy setting
2、打开网络和internet设置,设置代理
默认开启了代理服务器,127.0.0.1,端口号:8888
3、设置网速
charles->proxy->Throttle Settings->勾选Enanble Throttling,Only for selected hosts,
只输入协议,表示所有http协议的host都限速
App端模拟弱网
模拟器,进行settings-proxy的设置
二、mock测试
mock测试的场景:
前后端数据交互(后端接口未开发完、不稳定、第三方接口)、第三方系统数据交互(mock可以模拟更多的场景)、硬件设备解耦
mock的价值和意义:
不依赖第三方数据、节省工作量、节省联调
mock核心要素:
匹配规则(哪些接口的哪些数据要做修改)、模拟响应(修改成什么样子)
三、使用Curl发送请求
HTTP协议组成:
target:url protocol host port
-
request
- request:get、post、put、delete、head
- header: host cookie user-agent
- get query
- post body:json xml form
-
response:
- status line
- header
- body
copy as curl功能:
打开浏览器开发者工具->Network,右击请求》copy》copy as curl
copy as curl作用:
把浏览器发送的请求真实的还原出来
附带了认证信息,所以可以脱离浏览器执行
可以方便开发者重放请求、修改参数调试,编写脚本
客户端模拟请求工具:
nc:tcp/udp 协议发送
curl:最常使用的 http 请求工具
postman:综合性的 http 协议测试工具
代理工具、IDE 工具、浏览器插件工具
curl常见用法:
get请求 curl $url
post请求 curl -d ‘xxx’ $url
proxy使用 curl -x ‘http://127.0.0.1:8080’ $url
重要参数:
-H “Content-Type: application/json” 消息头设置
-u username:password 用户认证
-d 要发送的post数据 @file 表示来自于文件
–data-urlencode ‘page_size=50’ 对内容进行url编码
-G 把data数据当成get请求的参数发送,长与–data-urlencode结合使用
-o 写文件
-x 代理 http代理 socks5代理
-v verbose 打印更详细日志 -s 关闭一些提示输出
更多示例参考:curl命令参数
四、接口协议分析
协议分析工具:
网络监听:TcpDump+WireShark
代理 Proxy:
推荐工具:手工测试charles [全平台]、安全测试burpsuite [全平台 java]
自动化测试:mitmproxy
其他代理: fiddler [仅windows]、AnyProxy [全平台]
协议客户端工具: curl、postman
TcpDump
参数:
-x 十六进制展示
-w file 保存文件
表达式:
ip tcp 协议
host 主机名
port 80
src 来源 dst 目的
and or () 逻辑表达式
抓取访问百度的数据包:
sudo tcpdump host www.baidu.com -w /tmp/tcpdump.log
curl http://www.baidu.com
停止tcpdump
使用wireshark打开/tmp/tcpdump.log