热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

接口测试_接口测试实战根据接口文档使用postman测试

篇首语:本文由编程笔记#小编为大家整理,主要介绍了接口测试实战根据接口文档使用postman测试相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了接口测试实战根据接口文档使用postman测试相关的知识,希望对你有一定的参考价值。








文章目录


  • 为什么要进行接口测试?
  • 1)接口文档
  • 2)使用postman来实操接口请求
    • Postman接口请求过程:
    • Postman接口响应验证:
    • 2.1 GET(查询)
      • 2.2.1 学院-查询所有
      • 2.2.2 学院-查询指定

    • 2.2 POST(新增)
      • 常用的body类型:
      • 2-1-1、增

    • 2.3 PUT(更新)
      • 2-1-3、改

    • 2.4 DELETE(删除)
      • 2-1-2、删








前情:

《【接口测试实战(零)】接口测试简介》

《【接口测试实战(一)】搭建接口测试环境》

相关文档:

《【自动化测试】接口测试基础》





为什么要进行接口测试?

1、可以精确定位bug:当你在测试某网页时,发现网页显示的数据不正确,初级测试会直接提bug给开发,高级测试会定位bug,而要定位bug,就要熟悉接口。
2、提高测试效率:如果项目是前后端分离的,后端的提测时间往往早于前端提测时间,接口测试可以先把后端的接口过一遍,有问题尽早解决。
3、从技术角度去熟悉业务,发现程序的隐患:高级的测试要会走查开发的代码,通过代码更深入地理解业务。业务代码走查的第一步,往往是从接口开始——看调用,看后端逻辑处理,再看后端返回数据,这些和接口的知识息息相关。
4、相对容易实现自动化持续集成:相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。
5、从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。


  • 前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。


1)接口文档

在项目开发中,web项目的前后端分离开发、APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。


  • 一般采用Restful风格编写,通过规范接口文档编写标准,保证不同的人写出来的文档可读性和可维护性俱佳



    关于RESTful接口详细介绍可参考《【自动化测试】接口测试之RESTful接口》。


通常包括:


  • URL(定位资源):一个URL(接口)定位一个资源(你想拿到的东西)。
  • method(操作资源):即你想要对这个东西做什么操作(初学了解GET-查、POST-增、PUT-改、DELETE-删,即可)。
  • 请求传参
  • 返回参数


2)使用postman来实操接口请求

Postman接口请求过程:


填写接口URL --> 设置HTTP方法 --> 设置请求头域 --> 填写请求参数


Postman接口响应验证:


HTTP状态码 --> 收到接口响应 --> 检查返回头域 --> 查看返回主体内容


在这里插入图片描述
1、Authorization:身份验证,主要用来填写用户名密码,以及一些验签字段。


  • postman有一个helpers可以帮助我们简化一些重复和复杂的任务。
  • 当前的一套helpers可以帮助你解决一些authentication protocols的问题。

2、Headers:请求的头部信息

3、Body:post请求时必须要带的参数。



  • 6、form-data:它将表单数据处理为一条消息,以标签为单元,用分隔符分开。


    • 既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。)
    • post请求里较常用的一种。
  • 7、x-www-form-urlencoded:对应信息头-application/x-www-from-urlencoded,会将表单内的数据转换为键值对。

  • 8、raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送。

  • 9、binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件,也不能保存历史,每次选择文件,提交。


4、Pre-requerst Script:可以让你在请求之前自定义请求数据,这个运行在请求之前,语法使用Javascript语句。

5、tests:tests标签功能比较强大,通常用来写测试,它是运行在请求之后。


  • 支持Javascript语法。
  • postman每次执行request的时候,会执行tests。
  • 测试结果会在tests的tab上面显示一个通过的数量以及对错情况。它也可以用来设计用例,比如要测试返回结果是否含有某一字符串。



2.1 GET(查询)


  1. 输入请求的URL
  2. 点击蓝色“Send”按钮,获取返回值。

  • 注: GET请求的参数在url后面拼接:
    • 如:“https://api.github.com/events?id=1&name=user”


2.2.1 学院-查询所有


API文档内容:
2-1-4、查
查询所有学院信息
操作描述: 查询所有学院信息
操作要素:
要素1: URL = http://127.0.0.1:8099/api/departments/
method = GET
要素2: 无
要素3:状态码 =200
响应内容 = 多条学院信息


在这里插入图片描述




2.2.2 学院-查询指定


查询指定
操作要素:
要素1: URL =http://127.0.0.1:8099/api/departments/{要查询的学院的id}/
method = GET
要素2: 无
要素3:状态码 = 200
响应内容 = 对应的学院信息


在这里插入图片描述
在这里插入图片描述



2.2 POST(新增)


  1. 输入请求的URL。
  2. 在Body设置POST请求的参数:

在这里插入图片描述


常用的body类型:


  • form-data: HTTP请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。
  • x-wwww-form-urlencode:HTTP请求中的application/x-www-from-urlencoded,会将表单内的数据转换为键值对。
  • raw:可以发送任意格式的接口数据,可以text、json、xml、html等。
  • binary:HTTP请求中的Content-Type:application/octet-stream,只可以发送二进制数据。通常用于文件的上传。


2-1-1、增


操作描述: 添加新的学院信息
操作要素:
要素1: URL = http://127.0.0.1:8099/api/departments/
method = POST
要素2: 以 JSON 格式提交学院信息
要素3:状态码 = 201
响应内容 = 以 JSON格式回显添加的学院信息


在这里插入图片描述



2.3 PUT(更新)



2-1-3、改


操作描述: 修改学院信息
操作要素:
要素1: URL = http://127.0.0.1:8099/api/departments/{T01}/
method = PUT
要素2: 以 JSON格式提交学院信息
要素3:状态码 = 201
响应内容 = 以 JSON 格式回显修改的学院信息


在这里插入图片描述



2.4 DELETE(删除)



2-1-2、删


操作描述: 根据学院的 id 删除学院信息
操作要素: 、
要素1: URL =http://127.0.0.1:8099/api/departments/{T01}/
method = DELETE
要素2: 无
要素3:状态码 = 204
响应内容 = 无


在这里插入图片描述






【部分内容参考自】


  • Postman教程大全:https://www.jianshu.com/p/97ba64888894
  • 接口测试实战项目02:根据接口文档测试:https://mp.weixin.qq.com/s?__biz=MzI0ODUyMDA2MQ==&mid=2247484955&idx=1&sn=573cb3214d7e16d839429ab88a4cf3c4&chksm=e99eca09dee9431fe19c9abd68f3071f51a4226d1df5fa45adb36b070484d5bb0530e9e3666d&scene=21#wechat_redirect





推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
author-avatar
轶乐-love万
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有