注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

接口自动化测试之http请求实践总结  

来自张真真   2016-09-12 19:43:15|  分类: 接口测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、接口测试的基本思路

1、确定要测试接口的请求类型。接口是get请求还是post请求。

2、确定接口的参数。需要传输的参数有哪些,类型分别是什么,都有哪些要求等。

3、按照参数要求构造请求需要的参数,构造其他的请求信息,模拟发出请求。

4、对http请求返回的响应体进行解析,对解析中的部分或全部字段和预期结果进行对比。

除此之外,要模拟发送请求还有一些额外的操作,如登录要操作的系统、获取对应的权限等。

二、请求参数数据的构造

1、GET请求

  • 直接拼写

          只有一个参数,则直接拼写在域名后边:String url1 = "http://域名?+参数=值";

             有多个参数,则利用&进行拼接:String url2 = "http://域名?+参数1=值&参数2=值";

  • 利用DataProvider

           DataProvider功能,即可以使用多组测试数据来驱动一个测试方法,只是测试数据不一样,减少不必要的代码重复。

实例:

2、POST请求

     针对post请求,一般比较简单的是直接使用JSONObjectJSONArray类型的参数进行传递。一般参数会有类型限制,可以根据需求进行选择。

实例1:参数都是String类型,直接传各个参数


实例2:参数为Long和int类型,将参数拼接后传输json格式


实例3:字符串数组,可以使用List<String>


实例4:JSONArray


三、返回数据的校验

(1)、返回JSON数据

      在对响应进行解析时,需要根据返回的数据结果进行不同的校验。比较常见的有两种,下面分别进行说明。

       对JSON数据类型的校验,一般通过JSONArray或JSONObject对返回的数据进行解析,针对其中比较重要的字段和预期结果进行对比。

 1、JSON简介

      JSON是一种基于纯文本的数据格式,JSON协议是一种数据传输协议,只用来传输数据。JSON用Key-Value键值对来表示数据,其中Key只能用String表示。

 2、JSONObject和JSONArray的区别

  • JSONObject是一个Key-Value对,通过key获取value,JSONArray是一个数组,通过index即位置获取内容。
  • 表现形式:JSONArray是以“[]”包裹起来的数组(Array数组),而JSONObject是“{}”包裹起来的对象(Object对象)。
  • 转化:因为JsonObject的Value可以继续是JSONObject或JSONArray,所以解析的时候,会存在转化。

实例:

 1、JSON数据一jsonOne如下图所示:

   

   这个JSON数据的Key-Value对中的Value都是直接的值,可以通过方法直接获取。此时,我们只需要对此数据进行解析,然后对字段进行校验即可。利用TestNG进行校验,代码如下:

  

 2、JSON数据二jsonTwo如下图所示:

  

    可以看出,此JSON数据中,有部分Value是可以直接获取,但是Key-commonLimits对应的Value则是JSONObject的数组, 所以需要通过JSONArray获取到JSONArray之后再对其中的数据进行校验。利用TestNG对commonLimits中第一个 JSONObject的key-categoryId进行校验,代码如下:

 
 附:

 JSONArray官方文档:http://json.org/javadoc/org/json/JSONArray.html

 JSONObject官方文档:http://json.org/javadoc/org/json/JSONObject.html


(2)、只返回参数用来渲染html页面

 1、jsoup简介

 2、解析html字符串

     方法:parse(String html)

     作用:此方法将输入的HTML解析为一个新的文档(Document),然后可以使用Document中适当的方法或它父类Element和Node中的方法来取得相关数据。

     实例:一个字符串表示的htmlString,其中包含“文字",利用TestNG对其进行校验,代码:

     

  评论这张
 
阅读(409)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016