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无论对开发 ...
随机推荐
- 【Alpha】——First scrum Meeting
一.今日站立式会议照片 二.每个人的工作 成员 昨天已完成的工作 今天计划完成的工作 · 李永豪 编写测试计划 学习JAVA编程及UI设计 · 郑靖涛 Alpha任务分配计划 学习JAVA编程及UI设 ...
- 201521123065《java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 1.Map通过get(key)来获取值: 2.HashMap和Hash ...
- 201521123117 《Java程序设计》第7周学习总结
1. 本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.解释ArrayList的contains源代码 源代码: //contains()方法 public boolean conta ...
- 201521123054 《Java程序设计》 第2周学习总结
本周学习总结 能够利用jdk文档处理实验问题: 动态数组的学习: 书面作业 1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?分析String使用什么来存储字符串的?分析 ...
- 201521123089 《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-21.1 截图你的提交结果(出现 ...
- 视频转GIF图
1.工具 PS6.0(其他版本也可以) 视频一个(具体格式应该无所谓) 2.步骤 (1)打开PS,点击导入->视频帧到图层 (2)选择视频打开 (3)进行范围选择.由于每隔2帧导入一张图片,每秒 ...
- Markdown例
一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...
- Mybatis第八篇【一级缓存、二级缓存、与ehcache整合】
Mybatis缓存 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. myba ...
- 如何延长IntelliJ IDEA的试用期?
想打开idea写个代码...提示idea快过期...不开森...然鹅. 根据网上各种说明,总结大体分为以下4种方法: 方法1.直接输入激活码Activation Code(亲自验证有效而且非常简单 ...
- Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role
<Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: ...