接口自动化测试:Postman实战教程

article/2025/8/29 11:51:23

01 接口测试

(1)服务器端(server):在使用别人的服务器上,例如微信APP客户端,服务端在腾讯的服务端上,微信上的账号信息,聊天记录均存储在服务端上;用户A发送1条信息到服务端上,服务端再把这条信息转发到用户B上。

服务器使用的语言分别为:Java、Python、PHP、Go、C、C++等等

(2)客户端(client):手机上的APP,网站

客户端使用的语言分别为:object-c(IOS)、Android、HTML、CSS、JS等等

(3)接口:通过客户端与服务端进行交互的

(4)这么多种类的语言,造成无法识别,需要通用的数据类型进行解析:json{},没有json之前用的XML格式

XML :通用的数据类型

<title>接口测试<content>服务器与客户端需要接口进行交互</content>

JSON :通用的数据类型,以一种键值对来展示:

{
"title" : "接口测试",
"content" : "服务器与客户端需要接口进行交
}

02 如何测试接口

1、接口:是由客户端和服务器来进行交互的,以及接口返回的数据一般都是json格式的数据类型。

2、接口测试基本步骤如下:

在接口文档中或者其它地方,拿到接口的URL地址

查看接口是用什么方式发生请求(例如:get和post请求)

添加请求头,请求体

发送查看返回结果,校验返回结果是否正确

3、打开接口文档(参考:doc.nnzhp.cn)

(1)URL

(2)请求方式

(3)请求参数

(4)get请求

在浏览器上,直接输入接口文档中的请求URL:http://api.nnzhp.cn/api/user/stu_info,页面报错提示“必填参数未填写!请查看接口文档!”(如图所示)

图片

基于上面中的url链接中不带必填参数报错,故需在URL中补上必填参数:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E

图片

有多个必填参数时,需要在URL中添加其他必填参数用“&”拼接,例如:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E&age=25

机器学习PAI控制台:https://pai.data.aliyun.com/console?regionId=ap-southeast-1&commodityId=&projectId=&deployFrom=&modelPath=&type=#/eas

(5)post请求

复制URL在浏览器打开,报错“请求方式错误!请查看接口文档”,例如如图显示

图片

这时候需要借助postman接口工具进行测试,前提条件:需要本地安装postman应用软件(注意:如果是POST请求,选择Params填写参数,这时URL中会自动带上该参数信息,这种请求方式应该是GET请求方式而不是POST请求,如图:)

图片

POST请求,应该选择Body选项,勾选“form-data”或者“x-www-form-urlencoded”填写必填参数,如图所示:

图片

POST请求,用户注册,如图:

图片

POST请求,入参为json类型,如图:

图片

查询是否存在该学生信息:

图片

POST请求,Body选择form-data,Key由Text切换File格式,进行文件上传,(注意:x-www-form-urlencoded没有File格式,只有Text选项,不能上传多媒体文件)如图:

图片

4、浏览器进行抓包

(1)浏览器打开检查或者开发者工具,再或者检查元素等控制台

(2)一般查看调用接口Network(网络)下面的XHR调用了哪些接口

(3)请求url:https://qun.qq.com/cgi-bin/qunwelcome/myinfo?callback=?&bkn=682554596

图片

(4)利用Postman接口工具进行调用接口:get_group_list

图片

(5)接口search_group_members ,多个参数进行接口测试:

图片

(6)cookie和session

cookie:在浏览器存放自己本地信息数据的一个键值对(key-value)的地方

保存时间:根据需要设定

保存位置:客户端

session:存放在服务端的一个键值对

保存时间:用户活动时间+一段延迟时间(登录时提示用户保存时间7天时间)

保存位置:服务器端

5、GET请求方式和POST请求方式的区别:

(1)GET请求没有请求体,只要请求头和URL:host/api/xxx?name=xxx

(2)POST请求是有请求头、请求体

(3)GET请求没有POST请求安全

(4)GET请求有参数长度限制,POST没有

03 postman接口自动化

1、测试银行项目、金融项目会遇到加密参数,需要:
(1)参数去掉加密

(2)提供一个工具,产生加密后的参数

(3)自己了解加密算法,然后自己加密

2、Postman中手动配置环境变量:

(1)在Postman中,有Environment和Environment,用于实现不同环境的管理,不同服务器环境分别为:

Production 生产环境

Development 开发环境

Local 本地局域网环境

(2)环境快速查看,如图1所示 :

图片

(3)使用Environment实现多服务版本管理,点击右上角的设置,点击【Manage Environments】,和图2所示:

图片

(4)在弹窗【MANAGE ENVIRONMENTS】界面中,右下角点击“Add”,如图:

图片

(5)在“Add Environment”中,填写变量名和变量值 ,如图:

图片

(6)配置好变量名称和变量值后,可以在请求URL中进行参数化:

图片

图片

(6)编写脚本,脚本参数化,如同

图片

(7)点击runner,配置运行参数,如同:

图片

(8)查看最后的运行结果,状态码为200 ok,表示运行成功,如图:

图片

图中有个字段是:“This requests does not have any tests.”

需要检查:

第一步:检查是否变量名称是否对应;

第二步:是否点击了保存,再点击Runner

第三步:是否添加了校验

(9)添加校验,设置检查

图片

(10) postman断言:

图片

(11) 点击【Tests】按钮,右边栏有个snippets栏,里面是postman内置的测试脚本,辅助接口测试:

A:判断状态码

Status code : Code is 200

对应的脚本:

pm.test("Status code is 200", function () {pm.response.to.have.status(200););

B:返回的response包含内容

Response body : Containing string

 对应的脚本:
 pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");});

C:返回的json数据中的值

Response body : JSON value check

  对应的脚本为: 
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);});

D:响应的内容等于一个字符串

Response body : is equal to a string

对应的脚本:

   pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string");});

E:检查响应头中是否有Content-Type字段

Response headers : Content-Type header check

对应的脚本:

   pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type");});

F:判断响应的时间少于200MS

Response time is less than 200ms

   对应的脚本:
   pm.test("Response time is less than 200ms", function () {pm.expect(pm.response.responseTime).to.be.below(200);});

(12)新建集合便于将个别请求进行分组,如图:

图片

04 HTTP

1、http和https的不同之处:

安全性不同:

http:普通的http请求,,信息明文传输信息,不安全;

https:具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全;

连接方式不同:

http的连接很简单,是无状态的;

https是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;

端口不同:

http协议:使用的端口是80;

https协议:使用的端口是443;

证书申请方式不同:

http协议:免费申请;

https协议:需要到ca申请证书,一般免费证书很少,需要交费。

2、一般完整的URL为:http://192.168.13.3:80 host/ip:port/api/user/add_stu uri

图片

3、接口HTTP参数

http请求方式:

get — 通过请求URL得到资源

POST — 用于添加新的内容

PUT —用于修改某个内容

DELETE—删除某个内容

CONNECT—用于代理进行传输,如使用SSL

OPTIONS—询问可以执行哪些方法

PATCH—部分文档更改

PROPFIND(WebDAV)—查看属性

PROPPATCH(WebDAV)—设置属性

MKCOL(WebDAV)—创建集合(文件夹)

COPY(WebDAV)—拷贝

MOVE(WebDAV)—移动

LOCK(WebDAV)—加锁

UNLOCK(WebDAV)—解锁

TRACE —用于远程诊断服务器

HEAD — 类似于GET,但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

http请求头(headers)

请求头包含许多有关客户端环境和请求正文的又用信息。如图所示:例如语言种类和状态码

图片

http请求体(body):请求体即为请求等正文。

json 格式

xml 格式

html 格式

二进制格式(多用于图片)

字符串格式

4、用户接口可以通过以下4种不同方式的请求来做不同的事情:

(1)获取数据,用“GET”方式,成功了返回HTTP状态码:200

(2)创建数据,用“POST”方式,成功了返回HTTP状态码:201

(3)修改数据,用“PUT”方式,成功了返回HTTP状态码:203

(4)删除数据,用“DELETE”方式,成功了返回HTTP状态码:204

5、HTTP状态吗:

(1)请求消息(1字头)例如:100 Continue(请继续)

(2)请求成功 (2字头)例如:200 OK(请求已成功)

(3) 重定向 (3字头)例如:300 Multiple Choice(多项选择,会返回一个选项列表)

(4) 客户端请求错误 (4字头)例如:400 Bad Request (错误请求) 403 Forbidden(禁止) 404 Not Found(没有找到)

(5)服务器错误(5、6字开头)例如:500 Internal Server(内部错误) 502 Bad Gateway(代理或者网关下一链路收到未响应)

详细查看HTTP状态码、HTTP Status Code、HTTP常见状态码查询:https://tool.oschina.net/commons?type=5

软件测试工程师自学教程:

这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】

接口性能测试 — 软件测试人必会618实战场景分析

软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.

美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看

测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路

软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

Jmeter实战讲解案例 — 软件测试人必会

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!


http://chatgpt.dhexx.cn/article/92NVckty.shtml

相关文章

APITest接口自动化测试平台

接口自动化测试平台 环境 JAVA 1.8 MYSQL 测试管理平台为 war&#xff08;SpringSpringMVCMaven&#xff09; 定时执行为 jar&#xff08;SpringMaven&#xff09; ps&#xff1a;该项目测试管理平台&#xff08;包括用例调试&#xff09;与定时执行是分开的&#xff0c;可分开…

全网最全,接口自动化测试怎么做的?精通接口自动化测试详解

目录&#xff1a;导读 一、前言二、接口自动化测试的 "能 "1、接口自动化的目标2、接口自动化 Case 用例设计原则3、接口自动化用例定时跑 三、接口自动化测试的 "不能 "1、接口自动化之难点2、接口自动化之痛点 一、前言 接口通俗来讲就是前端和后段之间…

接口自动化测试框架搭建

一、原理及特点 参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理&#xff0c;使用了TestNG参数化测试&#xff0c;通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven 二、准备 使用工具&#xff1…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

在前篇文章&#xff1a; 接口自动化测试实践指导&#xff08;中&#xff09;&#xff1a;接口测试场景有哪些 中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作及接口测试场景有哪些。 本篇文章是最后一篇&#xff0c;主要分享一下接口自动化测试断言设置思路。 如…

Apifox接口自动化测试方法

1.新建测试用例 2.输入名称、分组、优先级后点击确定 3.点击测试用例名称或者详情 4.添加步骤&#xff0c;两个方式都可以 5.选择要测试的接口后选择模式&#xff0c;复制/绑定&#xff0c;复制-复制一份数据&#xff0c;和原来的接口相互独立&#xff0c;互不影响&…

接口自动化测试,完整入门篇

1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主…

如何搭建接口自动化测试框架?

为什么要做&#xff08;自动化&#xff09;接口测试&#xff1f; 1、由于现在各个系统的复杂度不断上升&#xff0c;导致传统的测试方法成本上升且测试效率大幅下降&#xff0c;而接口测试相对于UI测试更加稳定&#xff0c;且相对容易实现自动化持续集成&#xff0c;可以减少人…

接口自动化测试实践指导(上):接口自动化需要做哪些准备工作

作者&#xff1a;石臻臻, CSDN博客之星Top5、Kafka Contributor 、nacos Contributor、华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家 、 LogiKM PMC(改名KnowStream)。 LogiKM(改名KnowStreaming) 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不…

pytest接口自动化测试框架搭建

文章目录 一. 背景二. 基础环境三. 项目结构四、框架解析4.1 接口数据文件处理4.2 封装测试工具类4.3 测试用例代码编写4.4 测试用例运行生成报告 一. 背景 Pytest目前已经成为Python系自动化测试必学必备的一个框架&#xff0c;网上也有很多的文章讲述相关的知识。最近自己也…

接口自动化测试项目实战

目录 1. 什么是接口测试 2. 基本流程 2.1 示例接口 3. 需求分析 4. 用例设计 5. 脚本开发 5.1 相关lib安装 5.2 接口调用 5.3 结果校验 5.4 执行测试 5.5 发送邮件报告 6. 结果分析 7. 完整脚本 8、总结 1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或…

接口自动化测试用例详解

phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口&#xff0c;需要对接口头部进行封装&#xff0c;所以没有办法在浏览器下直接调用&#xff0c;但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例&#xff0c;讲…

接口自动化测试流程

文章目录 接口自动化测试的基本流程一、需求分析二、自动化接口挑选三、设计自动化测试用例四、搭建自动化测试环境五、设计自动化执行框架六、编写代码七、执行用例八、测试报告 接口自动化测试的基本流程 1、需求分析 2、挑选需要做自动化测试的功能接口 3、设计测试用例 4、…

接口自动化测试框架

本文介绍一个接口自动化测试框架。 Pythonunittestrequests 实现结果&#xff1a;读取Excel接口测试用例并执行&#xff0c;输出测试报告。 框架脑图 如图&#xff0c;各个模块及作用如上。 处理数据库 db_funcs用来处理数据库&#xff0c;实现数据库数据的读取操作。&…

基于 python 的接口自动化测试,让你轻松掌握接口自动化

目录 目录 一、简介 ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用 一、简介 本文从一个简单的登录接口测试入手&#xff0c;一步步调整优化接口调用姿势&#xff1b; 然后简单讨论了一下接口测试框架的要点&#xff…

接口自动化测试工程化——了解接口测试

什么是接口测试 接口测试也是一种功能测试 我理解的接口测试&#xff0c;其实也是一种功能测试&#xff0c;只是平时大家说的功能测试更多代指 UI 层面的功能测试&#xff0c;而接口测试更偏向于服务端层面的功能测试。 接口测试的目的 测试左移&#xff0c;尽早介入测试&#…

接口自动化测试【完整版】

1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主…

接口自动化测试

接口自动化测试 1.基础知识1.接口测试原理2.接口测试点及用例设计方法3.接口测试要点4.常见HTTP状态码5.HTTP基础知识6.接口自动化测试工具7.token 2.抓包工具1.chrom抓包2.Fiddler抓包&#xff08;PC端&#xff0c;手机端&#xff09;1.原理2.下载安装3.抓取数据信息说明&…

接口自动化测试(Python+Requests+Unittest)

(1)接口自动化测试的意义、前后端分离思想 接口自动化测试的优缺点&#xff1a; 优点&#xff1a; 测试复用性。 维护成本相对UI自动化低一些。 为什么UI自动化维护成本更高&#xff1f; 因为前端页面变化太快&#xff0c;而且UI自动化比较耗时&#xff08;比如等待页面元素的…

接口自动化测试,一看就会

引言 与UI相比&#xff0c;接口一旦研发完成&#xff0c;通常变更或重构的频率和幅度相对较小。因此做接口自动化的性价比更高&#xff0c;通常运用于迭代版本上线前的回归测试中。 手工做接口测试&#xff0c;测试数据和参数都可以由测试人员手动填写和更新。 因此我们在考…

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)

文章目录 nn.L1Lossnn.SmoothL1Lossnn.MSELossnn.CrossEntropyLossnn.NLLLoss 损失函数&#xff0c;是编译一个神经网络模型必须的两个参数之一&#xff0c;另一个是优化器。损失函数是指用于计算标签值和预测值之间差异的函数&#xff0c;常见的有多种损失函数可供选择&#x…