600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 接口测试准备一 网路基础 常用代理工具 charles使用 Android手机代理抓包

接口测试准备一 网路基础 常用代理工具 charles使用 Android手机代理抓包

时间:2019-11-16 02:21:21

相关推荐

接口测试准备一   网路基础  常用代理工具  charles使用  Android手机代理抓包

移动互联网公司技术架构

接口测试的必要性

1、行业成熟方案

2、更早份发现问题

3、更快的质量反馈

接口测试不能替代UI测试

1、接口测试有很多优点,但是保证的好似后端的质量,不能解决移动端的额质量

2、大前端工程师的产出质量只能通过UI测试保证

开发团队组成

大前端研发团队:

前端工程师:HTML、JS、CSS、Vue、React

移动端开发工程师:Java、Kotlin

跨端研发工程师:React Native、Flutter、Weex

后端研发团队:Spring boot

网络协议

网络接口层:使用什么网卡,是无线网卡还是虚拟网卡

网络层:使用什么路由来转发数据包 IP

传输层:使用什么协议保障传输质量 tcp / udp

应用层:将用户的操作通过应用程序转换成为服务 http

tcp与udp的区别

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

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

Restful软件架构风格

Restful:Representational State Transfer

借助于http协议的基本请求方法代表资源的状态切换

post:新增或者更新

get:获取资源

put:更新资源

delete:删除资源

RPC协议

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

Dubbo:

Java上的高性能RPC协议,Apache开源的项目

底层应用层协议支持dubbo缺省tcp协议、http、hessian、thrift、grpc等

gRPC:

高性能通用RPC框架,基于Protocol BUffers

PB是一个语言中立,平台中立的数据序列化框架。Google开源项目

Thrift:与gRPC类似的多语言RPC框架,Apache开源项目

协议分析工具

网络监听:TcpDump + WireShark

代理Proxy

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

自动化测试:mitmproxy

其他代理:fiddler[仅windoes]、AnyProxy[全平台]

协议客户端工具:curl、Postman

tcpdump

作用:监听网络层的数据包(注意⚠️ :使用这个命令需要是root的权限)

参数:

-x 十六进制展示

-w file 保存文件

表达式:

ip tcp 协议

host 主机名

port 80

src 来源dst目的

and or()逻辑表达式

使用tcpdump + WireShark抓取访问百度的数据包

sudo tcpdump host -w /Users/xxxxxx/Desktop/tcpdump.log # 开启监听模式curl # 请求数据

停止tcpdump

使用wireshark打开/Users/xxxxxx/Desktop/tcpdump.log

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

使用curl as curl命令

优势:

把浏览器发送到请求真是的还原出来

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

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

步骤:

1、通过浏览器的开发者工具,获取curl中的URL

2、复制的终端,直接回车,即可以发送请求

客户端模拟请求工具

nc tcp/udp协议发送

curl 最常见使用的http请求工具

postman综合性的http协议测试工具

代理工具、IDE工具、浏览器插件工具

curl常见用法

url=hrrp://

get请求 curl $url

post请求 curl -d ‘xxx’ $url

proxy使用 curl -x ‘http://127.0.0:8080’ $url

重要参数

–help 帮助命令

-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代理 sock5代理

-v verbose 打印更详细日志

-s 关闭一些提示输出

| jq 使得返回值更加清晰

常用代理工具

代理工具:charles、burpusuite、fiddler、mitmproxy、zap、nc

高性能代理服务器:squid、dante

反向代理:nginx

流量转发与复制:em-proxy、gor、iptable、niginx

sock5代理:ssh -D参数

nc演示代理实现

mkfifo /tmp/fifonc -lk 8080 < /tmp/fifo | sed -l -e 's/^Host.*/Host:/' | tee -a /tmp/req.log | nc 80 | tee -a /tmp/res > /tmp/fifo

代理工具具备的功能

代理功能:http/https、socks5

请求模拟工具:拼装请求、重放请求、重复请求

网络环境模拟:限速、超时、返回异常

mock:请求修改

fake:用测试环境代理真实环境

推荐工具

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

mitmproxy:测试开发工程师必备

zap:测试工程师安全测试工具

burpsuite:黑客必备渗透测试工具

fiddler:跨平台支持不友好,不推荐

postman:代理功能太弱、不推荐

charles使用

代理配置步骤

1、配置代理

浏览器端口配置

浏览器代理设置

安装Proxy SwitchyOmega:/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif

2、获取证书

方法一、

方法二、在浏览器中输入shls.pro/ssl (这个是代理工具charles提供的功能,必须在代理成功后才可以使用),回车后就会直接下载。

3、安装证书

4、信任证书

进入“钥匙串”,打开证书,并且把证书“信任”改为“始终信任”

确认添加证书成功

Android手机代理配置和抓包

代理配置

1、点击设置,到WLAN

2、长按Wi-Fi

3、进入修改网络

4、修改网络

代理:改为“手动”

代理服务器主机:填写本机IP,mac可以通过ifconfig获取

代理服务端口:填写charles代理的端口

安装证书

1、下载证书

浏览器中输入:http://chls.pro/ssl

2、下载完成后,打开证书。输入证书名后 点击“确定”即证书安装成功。

Android证书信任问题

一、Android 6.0默认用户级别的证书 (可以直接使用)

二、Android 7.0以上需要修改apk包属性

证书配置说明:/training/articles/security-config.html

domain-config配置文件更改

<base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" /><certificates src="user" /></trust-anchors></base-config>

mock - 数据修改

场景一:修改单一数据

查找对应接口中包含的字段command + F

替换条件

替换数据

数据翻倍替换

思想:在终端使用jq命令将其数据进行翻倍

步骤:

1、生成一个文件,用于存放编辑的脚本

vim /Users/username/Desktop/data_demo

2、复制数据到文件,保存退出(esc + :wq)

3、赋值到变量

_data=$(cat /Users/username/Desktop/data_demo)

4、验证,输出

echo "$_data"

5、叠加data.items和data.tems_size值

_data=$(echo "$data" | jq '.data.items+=.data.items' | jq '.data.items_size+=.data.items_size')

6、验证值

vim /Users/username/Desktop/data_demo

导入到Charles中

1、找到对应的API后,进入Map Local

注意⚠️ :Host清除

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。