服务端接口测试

一.常见的接口协议解析

1.tcp与UDP的区别:

TCP:面向连接,错误重传,拥塞控制,适用于可靠性高的场景

UDP:不需要提前建立连接,实现简单,适用于实时性高的场景

2.Restful软件架构风格

Restful:Representational State Transfer;借助于http协议的基本请求方法代表资源的状态切换

post:新增或者更新

get:获取资源

put:更新资源

delete:删除资源

Github:Rest API 

3.RPC协议

RPC协议:Remote Procedure Call,以本地代码调用的方式实现远程执行

常见的RPC协议有:Dubbo,gRPC,Thrift

4.接口协议分析

协议分析工具:

(1)网络监听:TcpDump+WireShark;适合偏底层的协议(tcp)

(2)代理Proxy:

推荐工具:手工测试charles[全平台],安全测试burpsuite[全平台 Java]

自动化测试:mitmproxy

其他代理;fiddler(windows),AnyProxy[全平台]

(3)协议客户端工具:curl命令,postman

(4)实战演练:

抓取访问百度的数据包?(tcpdump+wirsshark)

sudo tcpdump host www.baidu.com -w /tmp/tcpdump.log

curl http://www.baidu.com

停止tcpdump

使用wireshark 打开/tmp/tcpdump.log---查看三次握手,四次挥手的详细过程.

5.使用postman发送请求.

1.常用命令

2.用例集执行-数据驱动

3.导出为code代码(支持所有代码导出)


6.使用curl命令

curl命令可以在终端直接进行运行.

1.使用chrome浏览器调试工具,获取接口curl命令

copy as curl的作用:

(1)把浏览器发送的请求真实的还原出来

(2)附带了认证信息,所以可以脱离浏览器执行

(3)可以方便开发者重放请求,修改参数调试,编写脚本

2.客户端模拟请求工具

(1)nc tcp/udp协议发送

(2)curl 最常用的http请求工具;可以脚本化

(3)postman 综合性的http协议测试工具,脚本功能被限制

(4)代理工具,IDE工具,浏览器插件工具

3.curl常见用法

eg:url=http://www.baidu.com

(1)get请求 curl $url

(2)post请求 curl -d 'xxx' $url

(3)proxy使用 curl -x 'http://127.0.0.1:8080' $url

(4)重要参数:

-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 --help查看更多curl命令

--compressed | jq命令,可以让返回结果以json的格式展示

4.常用代理工具

代理工具:charles burpsuite fiddler mitmproxy

高性能代理服务器:squid dante

反向代理:nginx

流量转发与复制:em-proxy,gor,iptable,nginx

socks5代理:ssh -d参数

实操:使用nc 简易演示代理实现

mkfifo /tmp/fifo

nc -lk 8080< /tmp/fifo\

| sed -l -e 's/^Host.*/Host:site.baidu.com/'\

|tee -a /tmp/req/log\

|nc site.baidu.com 80\

|tee -a /tmp/res>/tmp/fifo

开发/测试工程师必备:charles

测试开发工程师必备:mitmproxy

5.http/https抓包分析

你可能感兴趣的:(服务端接口测试)