继上文我编写了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请求结合抓包工具实际应用的更多相关文章

  1. Fiddler抓取https请求 & Fiddler抓包工具常用功能详解

    Fiddler抓取https请求 & Fiddler抓包工具常用功能详解   先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...

  2. 为什么用抓包工具看HTTPS包是明文的

    测试或者开发调试的过程中,经常会进行抓包分析,并且装上抓包工具的证书就能抓取 HTTPS 的数据包并显示.由此就产生了一个疑问,为什么抓包工具装上证书后就能抓到 HTTPS 的包并显示呢?不是说 HT ...

  3. 谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件

    谷歌chrome浏览器自带http抓包工具 chrome://net-internals/ 谷歌chrome浏览器http请求模拟插件:postman 火狐http请求模拟插件:httprequest ...

  4. Mac 下抓包工具 Charles 修改特定请求

    Charles 是 Mac 下常用的抓包工具,它通过将自己设置成系统的代理服务器,从而完成了抓包的工作. 同类的工具还有 fiddler 和 Wireshark,其中 fiddler 是微软公司使用 ...

  5. Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

    目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...

  6. Java高效开发-fiddler抓包工具

    1.简介 Fiddler是最常用的抓包工具之一,只要打开之后就能够实现数据包抓取,关闭之后会自动取消代理,非常方便本地调试 2.下载 阿里云盘地址:https://www.aliyundrive.co ...

  7. 抓包工具charles使用教程指南

    0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...

  8. charles使用教程指南(抓包工具)

    0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...

  9. 抓包工具Fiddler的使用

    Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...

随机推荐

  1. 201521123061 《Java程序设计》第十二周学习总结

    201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...

  2. 201521123093 java 第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 答:接口:1.所有的默认方法都是public abstract; 2.属性都是p ...

  3. 201521123001《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:1.被继承的类称为父类,继承父类的类称为子类 2.继承时子类将获得父类的属性与方法,并具 ...

  4. 201521123089 《Java程序设计》第2周学习总结

    1. 本周学习总结 ① java数组的使用.② String类,对象是不可变的,当新的字符串的内容与字符串池中的内容相同时,不是重新开辟新的内存存储,而是共享. 2. 书面作业 (1)使用Eclips ...

  5. 201521123093 java 第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  6. 201521123070 《JAVA程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 Q1. finally 题目4-2 1.1 截图你的提交结果 ...

  7. Java-byte[]与16进制字符串互转

    转自: http://www.cnblogs.com/freeliver54/archive/2012/07/30/2615149.html Java中byte用二进制表示占用8位,而我们知道16进制 ...

  8. 来自projecteuler.net网站的练习题2

    0.题目如下: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By st ...

  9. (转)Unity3D中移动物体位置的几种方法

    1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  10. java 线程一

    java基础学习总结--线程(一) 一.线程的基本概念 线程理解:线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程,main()叫做主分支,也叫主线程. 程只是一个静态的概念,机器上的一个. ...