Python测开27期-接口测试L3

一、弱网问题

弱网测试概念:

按照移动的特性,一般应用低于 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,

image

只输入协议,表示所有http协议的host都限速
image

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常见用法:

url=http://www.baidu.com

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