查看原文
其他

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

转转QA 转转QA 2022-11-09

作者|赵新源

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

先抛出我们的方案:

管理平台 + agent + mitmproxy + harviewer。

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

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

  3. Mitmproxy通过代理的方式获取http和https包;

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

  4. 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打开

  1. ./venv/bin/mitmdump -s examples/complex/har_dump1.py --set hardump=dump.har -p 4002


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

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

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

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

二 、手机配置代理

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

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

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

好了,现在就可以手动通过mitmproxy抓取https包了,剩下的内容随后会持续更新,敬请关注后续相关文章,移动端H5性能自动化测试平台(下):重点讲解mitmdump如何生成har?

往期精彩回顾

直播流测试解密

转转交易系统基于动态代理的测试框架设计

欢乐送小程序自动化探索实践

Beetle双活实践

人人都谈用例管理与持续集成

生成可视化数据构造工具,我只用了5分钟

数据驱动过程改进

论测试方法带来的成就感

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存