接口测试学习笔记基础知识、Jmeter、Postman

目录

前言

一、基础知识:

二、postman接口测试

三、Jmeter接口测试 :jmeter 开源的java开发的一个压力测试工具。

总结

重点:配套学习资料和视频教学


前言

本文主要关于接口测试,涉及到postman和jmeter两个工具

一、基础知识:

1、接口就是把client(前端)和server(后端)端联系起来的(或者说各种花式操作数据库)。服务器也是一台电脑,只是性能比较高的一台电脑。

2、接口返回的数据都是json,(json,是一种通用的数据类型,以键值对 key-value 的数据形式来保存的)。

3、接口测试其实就是 功能测试,在接口测试之前,得要有接口文档。(问开发要的)

4、post请求和get请求没有很大的区别,get请求一般用于获取数据,post请求一般用于发送数据:

如果是get请求:不借助任何的工具,用浏览器就可以发请求,如:http://118.00.0.00/api/user/stu_info?stu_name=小黑

5、cookie:就是放在你本地的一个键值对。如:

niuhanyang hahaha12345
niuhanyang:sfjsksdf4234sdfw34

session:就是放在服务端的一个键值对。 如:

niuhanyang:sfjsksdf4234sdfw34


比如 登录, 登录成功后,本地(浏览器)就会保存键值对
浏览器发送请求的时候,就会自动把键值对发过去服务端进行对比

若对不上服务端的键值对,就会让你重新登录

session过期 也会让你重新登录
 

默认永久生效的。不过一般都会设置过期时间限制。

token 其实就是Cookie里面保存的一个键。

6、http请求分为两个部分:请求头和请求体

请求头里面呢是一些额外的信息,比如说用的什么浏览器,cookie
请求体里面传的是具体的数据。

请求头 header :
额外的信息
浏览器
cookie
需要什么样的数据

请求体 body :
username=xxx
file=aa.py

7、

get请求只有请求头,是没有请求体的。
它的数据直接放在url里面的,post请求数据是放在body里面的,get请求有长度限制,post请求没有。

在以前的时候技术不好,有长度限制。
现在早就没有了。
get请求没有post请求安全。
只要通过抓包,post请求的数据一样也可以看到。

8、

功能测试测的就是业务逻辑。

server端测试。
1、接口测试就是功能测试。
2、关注业务逻辑
3、正常、异常的,就不是按照接口文档上要求的来

http 状态码:
200 请求成功
302 重定向
404 客户端发出去的请求不合法
500 服务端有问题

9、、进行接口测试,必需的是接口文档,文档主要包含以下几个部分:
1、URL
2、请求方式(一般为post或者get)
3、请求参数说明
4、返回参数说明
5、请求、返回示例
6、状态码说明

二、postman接口测试

示例1 :GET请求 :

获取所有学生信息  

简要描述:

  • 这个接口是为了说明怎么添加header信息的

请求URL:

  • http://URL地址/api/user/all_stu

请求方式:

  • get

需要添加header信息,key为Referer value 为http://XXXX/

参数:

返回参数说明

参数名 类型 说明
error_code int 错误编码,0为操作成功
msg string 提示信息

参数及返回示例 

示例2: POST请求:

登录接口

简要描述:

  • 登录接口

请求URL:

  • http://URL地址/api/user/login

请求方式:

  • post

参数:

参数名 必选 类型 说明
username string 用户名
passwd string 密码
  1. 登陆用户名:XXXXX
  2. 密码:aA123456

返回示例

  1. {
  2. "error_code": 0,
  3. "login_info": {
  4. "userId": 1,
  5. "sign": "d58e3582afa99040e27b92b13c8f2280",
  6. "login_time": "20171207113501"
  7. }
  8. }

返回参数说明

参数名 类型 说明
error_code int 错误编码,0为操作成功
login_info object 登录对象信息
userId int 用户id
sign string 签名
login_time string 登录时间

参数及返回示例 

示例3:POST请求,添加Cookie

学生金币充值

简要描述:

  • 学生金币充值接口,这个接口是为了讲添加cookie以及身份验证的

请求URL:

  • http://URL地址/api/user/gold_add

请求方式:

  • post

参数:

该接口有权限验证,需要admin用户才可以做操作,需要添加cookie

cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

参数名 必选 类型 说明
stu_id int 学生id
gold int 金币数量

返回示例

  1. {
  2. "error_code": 0,
  3. "msg":"充值成功!"
  4. }

返回参数说明

参数名 类型 说明
error_code int 错误编码,0为操作成功
msg string 提示信息

请求参数及返回参数示例 

三、Jmeter接口测试 :jmeter 开源的java开发的一个压力测试工具。

为什么要使用JMeter 

  • 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
  • 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
  • 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
  • 多平台支持,可在Linux,Windows,Mac上运行

jmeter查看结果树乱码
1、在jmeter的bin目录下找到jmeter.properties这个文件
添加上
sampleresult.default.encoding=utf-8
2、重启jmeter
jmeter body data里面有乱码怎么解决
1、在jmeter的bin目录下找到jmeter.properties这个文件
添加上
jsyntaxtextarea.font.family=Hack
2、重启jmeter
jmeter参数化
1、用户定义的变量
2、函数助手里面的
__random
__counter
__time
3、从文件里面读
如果文件不写绝对路径,只写一个文件名,那么你就把你的文件
放到jmeter的bin目录下就ok了 

4、

关联:
1、调用第一个接口,然后从这个接口的返回数据里面拿到某个值
2、放到第二个接口里面来用。

5、

表示时间
1、格式化好的时间 20180506185922
2、时间戳 从计算机发明那一天到现在过了多少秒
jmeter是java开发的,Java里面的时间戳默认是精确到毫秒

所以你要除以1000才是真正的时间戳

关联:
1、调用第一个接口,然后从这个接口的返回数据里面拿到某个值
2、放到第二个接口里面来用。

一、添加线程组 :

如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里xmeter君需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统


 

二、添加HTTP请求:加入实际被测页面

总结

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

                 

 

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的评论区留言或者私信我

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340