• 7
  • 7
分享

 

GET方法和POST方法传递数据的异同

http请求方法get和post是最常被用到的两个方法,get常用于向服务器请求数据,post常用于提交数据给服务器处理。 GET方法其实也可以传递少量的数据。 但它存在以下问题:
1)GET 方法不包含body,因此以在URL中拼接字段的方式传递数据, 2)GET方法中的URL参数会被显示到地址栏上,存在安全问题
3)传递的数据只能是键值对,无法传递其他类型的数据 因此出于传递大量、多种类型的数据和安全性的考虑,上传数据常使用post方法。

POST方法如何传递数据

POST方法提交数据给服务器,涉及到Content-Type和消息主体编码方式两部分。服务器根据请求头中的Content-Type来判断消息主体的数据格式和编码方式,数据则存储在body参数中上传。

body支持多种数据格式,如form-data,x-www-form-urlencoded,json,xml,raw,不同的数据类型有不同的优势,有自己擅长的业务场景。

例如:application/x-www-form-urlencoded是默认的数据类型,但是在传输大型文件的时候效率低下,multipart/form-data的报文的主体内则可以包含多部分对象,通常用来发送图片、文件或表单等,适用于传输大型文件。

接口测试软件简介

简单介绍下我们用来做接口测试的工具——Apifox(apifox.cn )。

Postman自然是接口测试工具领域的老大哥,但Apifox这类软件在于它整合了接口测试的整个流程——从接口文档导入到单个接口的测试,整个接口套件的管理,以及自动化测试,一站式服务省去了几个软件切来切去的麻烦,现在我们直接用它来演示。

它的官网下载地址也顺便挂一个:www.apifox.cn 是免费软件来着,大家下载完对着界面边看思路边操作,学习效果会好些。

它的软件界面长这样,我们直接在首页的接口管理tab进行测试即可。

1.png

POST请求接口的测试

Post接口请求的测试关键在于理解各个数据类型的含义,并且能构造相应的数据,对各种正常,异常和边缘情况进行测试。接下来会一一介绍下各个数据类型的含义,并用Apifox演示一下各个类型的数据如何测试。

1.application/x-www-form-urlencoded 原生的form表单,在body中的数据格式为键值对。下图所示为百度文字识别AI的一个POST请求接口,测试这个请求接口需要填入的数据有2项。

在header处填入Content-Type:

2.png

在body处填入要上传的数据:

3.png

点击发送,可以看到实际发出的请求为:

4.png

2.multipart/form-data 当数据较大的时候可以选择multipart/form-data

5.2.png

实际发起的请求,Content-Type和body传输的数据可以在[实际请求tab]中查看:

6.png

3.Json 在接口请求中填入Json数据

7.3.png

发出的实际请求的Content-Type和Body数据类型:

8.png

测试方法

根据接口文档的参数描述,设计接口测试用例,造出相对应的正常和异常数据参数,上传数据进行测试。

1.设计接口测试用例

举例:某开放平台API的接口文档参数描述如下:

9.png

根据请求参数,上传jpg,png,gif等格式的正常测试数据,再上传非图片的base64编码数据进行测试,查看请求返回。 以该接口image参数测试的部分用例来作为例子:

10.png

2.Apifox中执行用例

a.直接上传未经过编码的照片

11a.png

b.上传非图片的base64编码

12.png

c.上传照片的base64编码:

13.png

3.保存接口测试用例,生成自动化测试套件

14.3.png

在测试管理tab导入测试用例,生成测试用例并一键运行

15.png

16.png

17.png

18.png

查看并导出测试结果:

19.png

总结

POST方法传递数据是接口测试中常见的测试点。 这篇文章主要介绍了为什么要用post方法来传递数据,post方法body传递参数的4种数据格式;设计用例并使用Apifox进行测试,最后生成了自动化测试用例及测试报告。

官网地址:www.apifox.cn


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 利用Jmeter做接口测试怎么做呢?过程真的是超级简单。明白了原理以后,把零碎的知识点填充进去就可以了。这篇文章就来介绍一下如何利用Jmeter做接口测试的流程,主要针对的是功能测试。暂不涉及到自动化测试和性能测试的内容。一把来说,主要的步骤都大差不差。第一步:通过分析API文档和需求文档提取接口清单。接口测试工作人员工作的开始就是从API文档和需求文档开始的。所以进入公司的第一件事情就是要拿到API文档和需求文档来了解,来看,来分析。从其中提取接口清单的话,主要是因为API文档中有很多冗余,不必要的信息。这些信息可能对于开发人员是有用的,但是对于我们测试人员是没有用的,所以要去除冗余,提取关...
            0 0 1833
            分享
          • 常见的功能测试的流程是:需求分析,用例编写,用例评审,提测验证,Bug 回归验证,上线与线上回归。但是做起来就是:写不完的用例,跑不完的case,天天都要加班。我以功能测试的工作流程,结合实际的工作内容,来具体细说一下做好功能测试的建议:一、需求分析首先一般大家接触到的都是产品主导型的开发模式,其中需求和项目,作为测试是没办法去主导的。这个时候就需要开展需求会议,来让团队中的各个成员来充分理解需求。注意,需求会上没有澄清的一个小点,都会成为日后你工作中一个巨大的坑。在需求评审中,你需要做的是提前阅读需求文档,把问题点都记录下来,然后在会上对描述不清晰、不便于设计用例、测试点不明确的地方都要抛出...
            2 1 1965
            分享
          • 这篇文章是写给做APP测试的同学的。当你们已经不满足于日常的功能测试,肯定还需要给自己一些提高的内容时,希望这篇文章能给你一些启发。除了对APP做一些日常的功能测试,我们还需要一些更能锻炼自己的内容。很多同学的第一反应大概都是:自动化测试!是的,你们有这个想法固然很好,但其实,除了自动化测试,我们还可以再把眼界放宽。软件测试,不仅仅是对功能的验证,还需要对整个产品的质量负责,自动化只是其中的一个方面。既然这样,我们就从自动化测试说起。自动化测试自动化测试主要包括几个部分,UI功能的自动化测试、接口的自动化测试、其他专项的自动化测试。UI功能自动化测试UI功能的自动化测试,也就是大家常说的自动化...
            0 2 3403
            分享
          •   你不能指望测试自动化执行测试人员完成的所有工作。一个好的测试人员有责任找到无法自动化并找到问题的区域。  测试自动化最近受到了很多关注。当今世界的许多开发人员和测试人员更愿意寻求测试自动化的帮助,以使他们的生活变得轻松。但是,测试自动化无法完全取代手动测试。因此,我们不能假设测试自动化正在窃取全世界软件测试人员的工作。  对于不是来自技术背景的人来说,测试自动化可以被视为一种完美的解决方案。导致软件工程师自动化测试的主要原因之一是它能够节省时间。自动化流程可以为您完成一些任务,帮助您保持高枕无忧。如果您不想处理与更频繁和长时间运行的流程相关的麻烦,那么测试自动化将是您可以使用的完美解决方案...
            0 0 334
            分享
          • 笔者从自己负责测试的项目出发,讲述下自己做测试管理的一些故事,从流程管理和团队管理两方面,分享下自己做管理过程中的一些心得和思考,供各位参考。流程管理流程简述我们测试的项目是一个APP端类的产品,迭代周期时一个月一个迭代。每个月月初启动迭代,经过两周的开发设计周期,各需求开发实现后,即提交给测试,以需求为单位进入测试周期。整个迭代有约两周的测试时间完成全部需求的测试,进入发布环节,并在当月完成发布。到下一个月,进入下一个迭代。任务拆分我们项目的版本周期是一个月一次迭代,迭代周期较长,每次迭代的任务量也相对比较多。因此,任务就需要进行合理的拆解,分配给不同的小伙伴。在团队管理上,我将团队打散成多...
            1 1 2225
            分享
      • 51testing软件测试圈微信