移动端H5性能测试平台(上)

作者|赵新源

移动端H5性能测试通常会用到Charles 、fiddler等,这些工具确实能满足一定的需求,但执行过程复杂,不能很好的管理性能测试结果,不能分析结果,所以需要一个H5性能自动化测试平台。

先抛出我们的方案:

管理平台 + agent + mitmproxy + harviewer。

管理平台负责管理测试任务、测试机器、下发命令、测试结果查询;

Agent负责执行平台下发的命令来开启代理,同时通过自动化脚本来使手机进行指定url访问;

Mitmproxy通过代理的方式获取http和htpps包;

MitmProxy的优点:首先他是python语言,跨平台的,同时支持命令行执行,最最重要的是它可以通过script脚本来处理抓包的输出流,可以通过脚本直接生成har文件,相比我们常用的tcpdump还是很强大的;

Harviewer是一个开源的工具,可以直接将har文件生成请求瀑布流。

本章先讲解一下mitmproxy如何抓取http和https请求。

一.Mitmproxy使用

为什么我们要使用Mitmproxy?

开始我们想用tcpdump,但是tcpdump抓取不了https

生成的pacp文件里无法解析https的详细信息

现在很多公司的资源都是https的,这个在性能测试里占了很大一部分的指标,总不能抛弃这一部分

所以决定用代理的方式来抓包,经过筛选,确定了Mtimroxy来进行抓包。

Mitmproxy抓包有三种展示方式:mitmproxy、mitmdump以及mitmweb。

1、mitmproxy可以实时的查看、编辑请求,如果需要走自动化,这种方式不太方便

2、mitmdump可以通过命令行的方式执行,打印出简单的信息,配合上python script就很方便

正常的命令-w只能保存流文件,但是这个proxy自带了一些脚本,比如里面有一个har_dump.py脚本

在目录的examples/complex里面,可以直接转为har文件,无需再处理

接着又会发现这个har文件通过harviewer打不开

通过检查,发现是自带的脚本转换成har文件的时候少处理了两个地方,导致文件格式没问题,但是无法通过harviewer打开

这个里面-s 命令就是执行python脚本,通过脚本来转换流数据。这个脚本就是根据源脚本改的。后面就是指定生成的文件为dump.har,监听的端口是4002。

至于改的脚本处理的时候,和har有关系,放在后面介绍,敬请关注后续文章。

以前用tcpdump进行尝试的时候是打算用tcpdump+pcap2har+harviewer,这下可以直接生成har文件,还是很爽的~~

3、mitmweb就不多说了,需要自带浏览器才能用

二 、手机配置代理

1、设置手机服务器以及端口,端口就上mitmproxy监听的端口

2、访问mitm.it,下载证书

如果安装失败就需要手动上传证书,证书在安装的服务器下面~/.mitmproxy/。记得一定要信任证书,否则不生效。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180829G0XNQV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券