一、Fiddler抓包工具的配置和使用
在编写网关自动化脚本之前,得先学会如何抓包,这里以Fiddler为例。会抓包的同学可以跳过这一步,当然看看也是没坏处的......
局域网络配置
将要进行抓包的手机与电脑连入同一局域网,电脑才能够抓到手机APP的请求,这里介绍一种我们在使用的网络配置方法。
首先使用电脑A布置一个我们抓包需要的局域网。下载猎豹WiFi(网上有很多这种工具360免费WiFi、百度WiFi等,随意下载一个就好,这里我们以猎豹WiFi为例),安装完后创建一个WiFi即可。
然后使用抓包的电脑B连接刚刚建立的WiFi,连接好后查看电脑B的IP地址。
用测试手机连接刚刚建立的WiFi,在局域网设置中将其代理改为电脑B的IP地址,端口号:8888,保存即可。
Fiddler配置
Fiddler的安装,在网上下载最新的版本就可以,这里给出一个我安装的4.5版本的链接http://sq.jd.com/bFPg1z ,下载安装,步骤就省略了,下一步..下一步即可。
安装完成后打开Fiddler,在菜单栏Tools->Fiddler Options->Connections,勾选Allow remote computers to connect,默认的端口号为8888,这里不需要修改,在修改手机代理设置时注意与这里一致。
因为我们所需要抓取的基本上都是京东到家有关的请求,所以我们可以设置只抓取我们所需要的请求,如图,选中右方Filters,在下方Hosts设置中选择Show only the follow Hosts,然后填入我们所需要抓取请求的Host,比如这里填入的是京东到家Android线上和预发布的Host。
到这里Fiddler的基本配置就完成了,接下来就可以开始抓包啦。
Fiddler抓包实例#
-
开启Fiddler,确定本机网络连接,查看本机IP、Fiddler端口号。
本机IP:192.168.191.2
Fiddler端口号:8888
-
手机连接同一局域网,设置代理。
-
打开手机京东到家应用,清空电脑Fiddler遗留抓取结果,点击如图所示按钮,点击第一个Remove all即可。
-
下拉刷新京东到家首页,抓取其HTTP请求。
-
分析Fiddler抓包数据。在右上方结果框中选择Inspectors->Raw即可看到请求的URL、Cookie和Host等有关信息。在右下方结果框中选择JSON就能看到请求返回的JSON字符串。这里的JSON字符串是我们判断请求是否成功的重要依据。
提示:在每次抓取时重复下步骤3中清空结果列表的操作,可以更容易地找到需要抓取的请求。
二、Jmeter的基本使用
Jmeter的安装配置
下载Jmeter。我们使用的Jmeter版本是2.1.3,大家可以在\\192.168.202.207\share\pengyun 中直接下载apache-jmeter-2.13.zip即可,里面已经安装了需要的jar包和插件。
安装JDK。Jmeter2.1.3需要安装JDK 6或以上版本,没有安装的同学记得安装,还是给大家一个链接吧,http://sq.jd.com/VaGwoP ,需要的同学可以下载,安装完成后配置环境变量即可,参考链接JDK安装与环境变量配置-百度经验 。
安装Jmeter。解压即可,无需多言。
第一个Jmeter脚本
这里很难对Jmeter做一个全面的介绍,而且我也只是了解了一些皮毛,所以就在实例中一一介绍吧,所有配置齐全之后,就开始我们的第一条脚本吧。下面的步骤说得比较详细,比较啰嗦,请勿急躁。
抓取需要的请求。这一步是在Fiddler中完成的,如果你是从头看到这的,那么这一步的内容就可以省略了。这里我们就以前面抓到的京东到家首页的请求为例。下图那个很重要的结果等会要用到。
运行Jmeter。在安装目录下的bin文件夹里打开jmeter.bat,后面的黑框能够输出一些断言结果。在右面的名称那里可以修改你要创建的测试脚本的名称,默认是测试计划。
创建线程组。测试计划右键选添加->Threads->线程组。
修改名称。修改线程组名称并不重要,根据自己的需要修改就行。由于我们执行脚本一般在需要的时候执行一次就可以,并不需要其他的配置,所以下方的线程属性就保持默认值即可(在进行压力测试的时候就需要进行配置了)。
添加HTTP请求。右键线程组选择HTTP请求。
**填写HTTP请求相关信息。**这一步是关键,需要根据步骤1中Fiddler里那段很重要的信息去填写。名称自行修改,Host、协议、请求方法、请求路径都能够在抓取到的信息中获取,拷贝过来就行。
注意:HTTP请求有GET和POST两种,不同的请求记得选择不同的请求方法!!!
添加Cookie管理器。右键线程组选择Cookie管理器。将抓取到的信息添加至Cookie管理器中。
添加结果树。到这里这条Case就算是编写完成了,在运行之前我们还需要添加一个结果树,来查看Case运行的结果。右键线程组选择查看结果树添加。
运行。在上方找到运行按钮运行即可。注意,如果有多个线程组或者多个HTTP请求,点击运行后都会全部一起运行。
结果分析。点击结果树即可查看运行结果,绿色为成功,红色为失败。在右边点击相应数据就能够看到返回的JSON字符串了。
这样我们的第一条Jmeter脚本就基本完成了,基本所有的HTTP请求都是大同小异,多练习写几条基本就能手到擒来了。结果树和Cookie管理器每个线程组添加一个就够用了。
【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!