分享

Android网络测试环境搭建方法

 千阳浅浅 2019-12-14

手机软件测试中,网络测试是很常见的,所以查看和修改请求与返回数据就是基础。本文介绍如何查看网络请求,以及如何搭建环境,后续再介绍修改请求数据以及更多应用。下面介绍三种独立的方法。

方法一:
1、使用fiddler

Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的httphttps请求,允许你监视,设置断点修改输入输出数据。
配置fiddler允许被远程连接:在一台windows机器上安装并打开fiddler,然后在fiddler options中勾选如下截图中红框中的复选框,并设置上面的端口号,默认为8888


一、Fiddler中如何过滤会话

每次使用Fiddler,打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话。Fiddler中有过滤的功能,在右边的Filters tab中,里面有很多选项, 稍微研究下,就能知道怎么用了,不再赘述。

二、Fiddler中会话比较功能

工作中,有时会遇到想看看两次返回的内容有什么不同,其实fiddler可以方便的启动对比功能,只不过需要第三方工具的支持,比如ultraCompare、WinDiff等:选中2个会话,右键然后点击Compare,就会自动调用对比工具WinDiff进行对比,如果没有安装,会让你去下载安装。

当然你也可以调用自己喜欢的对比工具,在fiddlerOptions的tools----File Diff Tool进行设置。

三、Fiddler中提供的编码小工具

在工作中,我们有时候需要各种编码之间进行切换,此时无需寻找其它工具,fiddler就可以了:点击Fiddler 工具栏上的TextWizard, 这个工具可以Encode和Decode string。界面上功能很清晰,就不多讲了。

四、Fiddlerscript系统

Fiddler最复杂的莫过于script系统了,它可以把fiddler打造的更加多样化和个性化,让功能更加灵活。官方的帮助文档: http://www./Fiddler/dev/ScriptSamples.asp

使用脚本系统的方法:首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and InstallSyntaxView Now...

安装成功后Fiddler 就会多了一个Fiddler Script tab,然后就可以使用了。下面就举一个例子,增加查看请求server的IP显示:

五、查看每次请求的server ip 和端口

每个域名可能会对应多个ip,我们一般不能直接看出这次请求是发到那台机器上去了,每次分配请求ip是dns轮询的,有时候想要确定请求是发到哪个机器上。下面就用Fiddler脚本开发功能,扩展自定义菜单、增加显示ip的功能。

进入fiddler----Rules----Customize Rules

在打开的CustomizeRules.js文件中,的static function Main()函数中增加一行代码:FiddlerObject.UI.lvSessions.AddBoundColumn(”IP”,50,”X-hostip”);

之后重启fiddler就行了。

此时再选择想要知道server ip的session,然后右键选择Properties,此时里面就会有X-HOSTIP指示server的IP

六、解决Fiddler中文乱码问题

fiddler中查看某些post请求的中文参数,未能被 Fiddler 正确处理,会显示乱码。具体表现是:某些网站是用 GB2312/GBK/GB18030 编 码的,比如 POST 请求中含有"中文"二字,在Fiddler 的 TextView Inspector 中显示为“%D6%D0%CE%C4”("中文"的 GBK 编码),到了WebForms Inspector 中就显示为乱码了, 因为 Fiddler 把它们按照 UTF-8 解码。 反过来, 在 WebForms Inspector 中将参数设置为中文值,会被 Fiddler 用 UTF-8 编码发送出去导致错误。其实这不是 Fiddler 的错,是这些土鳖网站没有在 HEADER 中指定字符集。

解决方案为:打开注册表编辑器,找到HKCU\Software\Microsoft\Fiddler2\,在里面添加一个字符串值,名叫HeaderEncoding,值设置为默认编码。建议设成 GB18030,然重启 Fiddler就生效了。

2、配置手机端wifi代理

在手机的wifi设置中,修改当前连接的wifi配置,里面会有代理服务器的设置,然后设置好fiddler所在机器的IP和端口8888(注意:fiddler所在机器和手机必须在一个局域网内)。

然后手机的网络交互信息就可以在fiddler中看到了。


优缺点:
①环境搭建方便快速,数据查看直观,可以进行后续的修改上传和返回数据;
②只能在wifi环境下使用;
③修改hosts、到服务器上查看log

方法二:

当需要抓包移动网络下的数据时,上面的方法就无效了,因为手机直接连接的是移动网、然后直接到达所需的服务器,中间无法架起WIFI桥梁进行抓包处理。此时可用如下方法:
修改系统hosts文件,把要检查的服务器域名指向测试ip,之后就可以到测试服务器上查看log了。

优缺点:

①可以在任意环境下使用,包括移动网和wifi
②只能抓到指定域名(配置好hosts的域名)的log,无法像fiddler那样全部抓取
③必须有搭建好的http测试服务器才行
④如果移动网下,被指向的测试ip必须是公网ip
⑤手机必须root

方法三:

使用Linux底层抓包工具tcpdump,它可以抓取所有从Android发出的网络信息,不限于httpftp等。方法如下:
前提条件:①手机需要root  ②电脑上安装WireShark(一款网络抓包工具),用于log分析

步骤:①把tcpdump传进手机,原则上任意路径均可,例如/data/local
  ②修改tcpdump的权限为6755(使用任意文件工具,例如rees),(其实7777也没问题,但为了避免权限过滥,还是限制一下的好)


执行抓包:连上adb后,运行
   adb shell
  cd/data/local/
   ./tcpdump-p-vv-s 0-w/sdcard/capture.pcap
这样抓包就开始了,并把log存入/sdcard/capture.pcap
执行网络操作于是log写入了;待网络操作完毕后,按ctrl+c中止
log文件拷贝到电脑上用WireShark打开,就能看到各种网络交互了。
优缺点:

①可以在任意环境下使用,包括移动网和wifi
②只能查看请求数据,无法进行修改
③手机必须root

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多