java自动化测试-http请求结合抓包工具实际应用
继上文我编写了java的get请求与post请求之后,我现在开始写一下实际操作
很多人有疑问,接口测试的代码是哪里来的,怎么来的呢?看得见吗?我来做一个简单的演示
我们这里简单介绍一下抓包工具,对于一般的app来说,可以使用fiddler来进行抓包测试具体的可以建立代理,分为以下步骤
1设定自己的测试手机和pc机器在同一个无线网之中
2pc机器打开fiddler,tool->fiddler options打开后在connections中设置端口号

3手机端进行如下图的设置,ip为该机器的ip端口为刚刚设置的端口号

如此,手机上的东西一旦发起网络请求,数据包就会显示在fiddler上了,至于pc端,我用的是charles,一般下载一个破解版也就ok了~~与手机端很相近
我们一般抓到的数据包是这样的

上图是charles抓到的数据包,overview中里面很明显的看出来是get还是post请求,但是详细的参数和header就在第二张图contents中

在contents中可以看到传的参数,在header中也可以看到所需要传输的header值,下面是我们的返回参数
实际上,运用我们现在的代码即可完成这个操作,这就是自动化代码的能力,发一下http请求,针对上图,我们把url从overview中拿出来,再把header和view中的数值全部填充上即可,具体代码如下
url="http://xxxx";
applyParams = new HashMap<String, Object>();
applyParams.put("courseId",courseIdbig);
applyParams.put("xesClasses[0].nickName", Util.strTime6());
applyParams.put("xesClasses[0].tutorName",tutorName);
applyParams.put("xesClasses[0].tutorId",x);
applyParams.put("xesClasses[0].maxPersons","40");
applyParams.put("xesClasses[0].areaId","ff8080812e19f4bd012e23a921795499");
applyParams.put("xesClasses[0].serviceCenterId","ff8080814932e6a101493c0e6e2d1b73");
applyParams.put("xesClasses[0].venueId","ff808081494b24f60149545dd2b918d9");
applyParams.put("xesClasses[0].classRoomId","ff808081494b24f60149545fed0e18e3");
applyParams.put("xesClasses[0].teacherConflict","0");
applyParams.put("xesClasses[0].roomConflict","1");
httpDoGet.doPost(url, applyParams, Cookie).toString();
是的,只要有了上文的基础可以很简单的进行这个模拟操作
总得来说,对我们而言,上文是我们接口测试的一个方法,也是我们一个常态化的方法,,,
接口测试的话,主要是依照接口文档来做的(官方说法),接口文档与我们这个相比,还不如这个方法来的靠谱,,,因为文档的参数没有数值,而我们这里有数值,另一方面,我们可以想象,对一个写代码的人来说,编写自己的代码的文档来介绍自己的代码是很枯燥的事情文档更是如此,所以接口文档一般错误都是存在的
所以在熟悉业务的基础上,如果从接口文档中没法调通接口,这个时候要用这个方法,比如要测试创建订单的接口的话,我们就手动创建一个订单,抓取数据包后利用这个方法就可以作了~
在另一个场景也常常用到该方法,就是我所说的自动化工作中(非测试)
这时候开发没有义务配合你的工作,没有文档啥都没有,只有手动操作的账号,,,我们只能这样做,但是通过自己这样的方式,写出来的代码,真的很有成就感~
java自动化测试-http请求结合抓包工具实际应用的更多相关文章
- Fiddler抓取https请求 & Fiddler抓包工具常用功能详解
Fiddler抓取https请求 & Fiddler抓包工具常用功能详解 先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...
- 为什么用抓包工具看HTTPS包是明文的
测试或者开发调试的过程中,经常会进行抓包分析,并且装上抓包工具的证书就能抓取 HTTPS 的数据包并显示.由此就产生了一个疑问,为什么抓包工具装上证书后就能抓到 HTTPS 的包并显示呢?不是说 HT ...
- 谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件
谷歌chrome浏览器自带http抓包工具 chrome://net-internals/ 谷歌chrome浏览器http请求模拟插件:postman 火狐http请求模拟插件:httprequest ...
- Mac 下抓包工具 Charles 修改特定请求
Charles 是 Mac 下常用的抓包工具,它通过将自己设置成系统的代理服务器,从而完成了抓包的工作. 同类的工具还有 fiddler 和 Wireshark,其中 fiddler 是微软公司使用 ...
- Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用
目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...
- Java高效开发-fiddler抓包工具
1.简介 Fiddler是最常用的抓包工具之一,只要打开之后就能够实现数据包抓取,关闭之后会自动取消代理,非常方便本地调试 2.下载 阿里云盘地址:https://www.aliyundrive.co ...
- 抓包工具charles使用教程指南
0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...
- charles使用教程指南(抓包工具)
0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...
- 抓包工具Fiddler的使用
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
随机推荐
- 【Beta】Daily Scrum Meeting——Day4
站立式会议照片 1.本次会议为第四次Meeting会议: 2.本次会议在早上9:35,在陆大2楼机房召开,本次会议为25分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 员 ...
- 201521123025《java程序设计》第七周学习总结
1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { r ...
- 201521123055 《Java程序设计》第6周学习总结
1. 本章学习总结 2. 书面作业 Q1.代码阅读:Child压缩包内源代码 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法 ...
- 201521123011 《Java程序设计》 第三周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
- Python IDLE快捷键一览
编辑状态时:Ctrl + [ .Ctrl + ] 缩进代码Alt+3 Alt+4 注释.取消注释代码行Alt+5 Alt+6 切换缩进方式 空格<=>TabAlt+/ 单词完成,只要文中出 ...
- ubuntu下php不能显示中文的问题的解决过程。
在阿里的ECS上的ubuntu平台上成功的安装了apache2和php5与mysql,并进行了测试. 如图所示:
- 201521123011 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 协议.IP.域名.端口: 常用应用层协议:http, ftp 域名(通过域名可以找到IP)用ping测试 ...
- HTML超文本
1.HTML链接 2.HTML表格 3.HTML图像 4.HTML列表 5.HTML块 6.HTML布局 7.HTML表单 1.HTML链接 (1)给文字及图片添加超链接 < html> ...
- C++临时对象以及针对其进行的优化
C++临时对象以及针对其进行的优化 C++中真正的临时对象是看不见的,它们不出现在你的源代码中. 那么什么时候回产生临时对象呢?主要是三个时刻: 产生临时对象的三个时刻: 用构造函数作为隐式类型转换函 ...
- JS表单对象和图片对象--JavaScript基础
1.表单对象 1)访问者输入正确的密码才可进入网站 HTML DOM prompt() 方法,prompt() 方法用于显示可提示用户进行输入的对话框.prompt(text,defaultText) ...