教你用JMeter做接口测试的几个简单实例

前言

这次小项目是基于HTTP协议的接口,通过JMeter来完成一次基本的接口测试,完整复习一下JMeter的基本操作。

在实际项目中,测试也要先从开发那拿到接口说明书,分析熟悉业务后,写接口的测试用例,最后再在JMeter里写接口测试的脚本。

设置如下

1、登录(POST)

登录

登录接口

简要描述:

  • 登录接口

请求URL:

  • http://api.nnzhp.cn/api/user/login

请求方式:

  • post

 

参数名

必选

类型

说明

username

string

用户名

passwd

string

密码

登录接口POST请求,入参 username 和 passwd 都是必填项。

在线程组下添加一个察看结果树和HTTP请求默认值,前者可以方便查看所有请求的结果,后者在跑多个同域名的接口的测试的时候,可以设置默认值很实用。

接着就可以做HTTP请求,并加上相应的断言,看用错误密码登录和成功的登录的响应是否符合预期

具体如下: 

 

错误的密码时,登录失败,返回的响应体符合断言的预期:

请求正确,登录成功,断言通过:

2、获取学生信息(GET)

获取学生信息

简要描述:

  • 获取学生信息接口

请求URL:

  • http://api.nnzhp.cn/api/user/stu_info

请求方式:

  • get

 

参数名必选类型说明
stu_namestring学生姓名

从接口文档中,我们可以看到获取学生信息用到的是GET方式的请求,入参中 stu_name 为必填项,返回参数太多,就不细说了。

3、添加学生信息(POST,JSON)

添加学生信息

简要描述:

  • 添加学生信息,这个接口是用来讲入参是json类型的

请求URL:

  • http://api.nnzhp.cn/api/user/add_stu

请求方式:

  • post

  • 入参是json类型

参数名必选类型说明
namestring学生姓名
gradestring班级
phoneint电话
sexstring性别,如果不传默认为男
ageint年龄,如果不传默认为18
addrstring地址,如果不传默认为北京市昌平区

 

在添加学生信息的接口中,用到的也是POST请求方式,但与登录接口不同的是,它的入参是JSON类型的,接口文档中有1个JSON请求示例,我们可以直接复制过来,简单修改一下即可。如下:

  

在这里,由于这个学生信息已存在系统中了,因此返回添加失败的结果。所以,我需要添加1个新的学生信息,另外,这里需要调整下编码格式为utf-8,否则添加的学生信息会出现中文乱码。

 4、学生充值金币(POST,Cookie)

学生金币充值

简要描述:

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

请求URL:

  • http://api.nnzhp.cn/api/user/gold_add

请求方式:

  • post

参数:

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

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

 

参数名必选类型说明
stu_idint学生id
goldint金币数量

这个接口有权限验证,需要admin用户登录成功后才可以进行充值,另外,在入参 stu_id 和 gold 中,我们发现 stu_id 指的是学生ID,这里其实就是最开始 获取学生信息 接口返回结果中的id字段,如下:

 

5、获取所有学生信息(GET,header)

获取所有学生信息

简要描述:

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

    请求URL:

  • http://api.nnzhp.cn/api/user/all_stu
  • 请求方式:

  • get

    需要添加header信息,key为Referer value 为http://api.nnzhp.cn/

    参数:

 从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下

 

6、文件上传(POST)

文件上传

简要描述:

  • 上传文件接口

请求URL:

  • http://api.nnzhp.cn/api/file/file_upload

请求方式:

  • post

 

参数名必选类型说明
filefile文件

在上传文件接口中,需要注意的是这里的入参是file类型的,因此,我们需要准备一个待上传的文件。

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java毕业设计—vue+SpringBoot调查问卷管理系统

研究目的 在进入21世纪以后,互联网得到了蓬勃的发展,电子问卷调查也开始逐渐流行起来。传统纸质问卷和电子问卷相比较后,传统问卷还存在很多弊端: 问卷分发起来比较困难,并且分发试卷耗费大量的金钱和时间&#xff1…

2024年金科《数字媒体技术》专业参考书目及考试大纲

《计算机网络基础》考试大纲 一、参考书目: 《计算机网络技术与应用(第 2 版)》,段标、张玲主编,电子工业出版社. 二、考试形式: 闭卷,考试时间 90 分钟 三、考试内容和要求 (一…

Visual Studio(VS)常用快捷键(最详细)

Visual Studio常用快捷键 一、生成:常用快捷键二、调式:常用快捷键三、编辑:常用快捷键四、文件:常用快捷键五、项目:常用快捷键六、重构:常用快捷键七、工具:常用快捷键八、视图:常…

Echarts多图表动态更新示例

前端框架(html、echarts、jquery) <!DOCTYPE html> <html><head><meta charset"utf-8"><title>echarts多图表动态更新示例</title><script src"jquery.min.js"></script><script type"text/java…

强大的TFTP工具:Transfer免激活最新版

Transfer for Mac功能介绍 从头开始编写的Transfer可以完全控制您的文件传输&#xff0c;同时可以与现有的TFTP客户端完美兼容。Transfer附带对常见TFTP协议扩展和选项的支持&#xff0c;包括&#xff1a; RFC 2347-TFTP选项扩展 RFC 2348-TFTP块大小选项 RFC 2349-TFTP超时…

SystemUI下拉通知菜单栏定时自动隐藏

前言 在系统应用开发过程中&#xff0c;常常遇到一些特殊的需求&#xff0c;Android原生的应用并无此适配&#xff0c;此时需要对系统应用进行定制化开发。 目前遇到的这样一个需求&#xff1a;下拉通知菜单栏时&#xff0c;定时8秒后自动关闭通知菜单栏。通知菜单栏为Sytstem…

Python面经【11】- Python可迭代对象一网打尽专题

Python面经【11】- Python可迭代对象一网打尽专题 可迭代对象Python的迭代器、生成器1) 迭代器2) 生成器 可迭代对象、迭代器的区别12. 生成器、迭代器的区别什么是装饰器&#xff1f;函数装饰器有什么作用一句话解释什么样的语言能够使用装饰器Python中的作用域&#xff1f;什…

自卑与自信,自爱的人最幸福

自信与自卑的区别&#xff0c;重要的一点是评价机制的差异 自信的人对自己有一个整体的评价&#xff0c;他们运用内在的评价机制&#xff0c;他们习惯从自己身上找原因&#xff0c;尊重自己内在的感觉&#xff0c;按照自己的直觉行事。也就是说&#xff0c;不管别人如何评价&am…

Linux CentOS7 Docker安装Jenkins

1 sudo yum update #确保yum包更新到最新 service network restart #重启网络 2、查询镜像 docker search jenkins 3、拉取镜像 docker pull jenkins/jenkins #拉取镜像 4、创建Jenkins工作目录&#xff0c;并将容器内目录挂载到此目录…

远程服务器——如何在Conda中安装R环境

目录 1. R的安装2. VScode 配置参考文献 1. R的安装 推荐使用anaconda或者miniconda&#xff0c;创建虚拟环R_env境然后安装R&#xff1b; 使用conda search r-base查看可下载的R的版本&#xff1b;R版本比较低&#xff0c;一般可以先增加源&#xff1a; % 增加源 conda con…

垂直领域大模型算法团队招聘AIGC算法工程师(社招/实习)

base 北京 根据实习表现有转正名额&#xff0c;目前实习HC比较宽松&#xff0c;社招有HC但审批不太容易。 联系方式&#xff1a;leayc 艾特 hotmail.com 请标题注明【CSDN求职】并附简历 【职责】 负责领域大模型的继续预训练&#xff08;pre-training&#xff09;、微调对齐…

计算机视觉技术在智慧城市建设中的应用

计算机视觉技术在智慧城市建设中的应用 随着城市化进程的不断推进&#xff0c;更多的人们选择在城市生活、工作和娱乐。面对快速增长的人口和日益复杂的城市环境&#xff0c;很多城市开始探索智慧城市的建设。智慧城市的核心就是将现代信息技术应用于城市管理中&#xff0c;以…

阿里云语音转文本

import requests from http import HTTPStatus import dashscope from dashscope.audio.asr import Recognitiondashscope.api_key你的keyrecognition Recognition(modelparaformer-realtime-v1,formatwav,sample_rate16000,callbackNone) result recognition.call(output.wa…

基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

07用户行为日志数据采集

用户行为数据由Flume从Kafka直接同步到HDFS&#xff0c;由于离线数仓采用Hive的分区表按天统计&#xff0c;所以目标路径要包含一层日期。具体数据流向如下图所示。 按照规划&#xff0c;该Flume需将Kafka中topic_log的数据发往HDFS。并且对每天产生的用户行为日志进行区分&am…

Python高级算法——遗传算法(Genetic Algorithm)

Python中的遗传算法&#xff08;Genetic Algorithm&#xff09;&#xff1a;高级算法解析 遗传算法是一种启发式搜索算法&#xff0c;模拟自然选择和遗传机制&#xff0c;用于在解空间中寻找优化问题的解。它通过模拟基因的变异、交叉和选择操作&#xff0c;逐代演化产生新的解…

【Android】DeepLink

官方文档&#xff1a;创建指向应用内容的深层链接 Intro to Deep Linking on Android What is Deep linking? Deeplinks are a concept that help users navigate between the web and applications. They are basically URLs which navigate users directly to the specif…

数据集汇总

1、农业、生物、数据竞赛、教育、金融、健康汇总&#xff1a;https://github.com/awesomedata/awesome-public-datasets 2、人脸识别数据集&#xff1a;http://www.face-rec.org/databases/ 3、Yahoo实验室公开1亿Flickr图像和视频&#xff1a; http://yahoolabs.tumblr.com/po…

linux vfs 路径解析代码注释

linux版本为 v6.7 以chroot修改根目录为例&#xff0c;走一遍流程&#xff0c;重点在path_lookupat的实现。代码按逻辑组织&#xff0c;非真实代码顺序。由于涉及太多细节&#xff0c;每部分的开始会先做一个小结。 chroot 解析路径字符串&#xff0c;逐层进入&#xff0c;检…

C/C++ 表达式求值(含多位数)

个人主页&#xff1a;仍有未知等待探索_C语言疑难,数据结构,算法-CSDN博客 专题分栏&#xff1a;算法_仍有未知等待探索的博客-CSDN博客 目录 一、前言 二、解析 分析 最后直接上代码&#xff01; 一、前言 表达式求值是一个比较基础的代码关于栈的使用。在写的时候充分锻炼…