Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇

本文主要是介绍Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学 三.实战篇

  • 一、 接口测试流程
    • 1.1 搭建自动化脚本
    • 1.2 完善自动化脚本
  • 二、场景模拟
    • 2.1 弱压力测试
    • 2.2 高并发
    • 2.3 高频率
  • 三、生成图形化测试报告

在这里插入图片描述

  • 学习目标

在这里插入图片描述

一、 接口测试流程

1、制定测试计划,分配任务
2、从 API 文档中提取接口清单:对 API 文档简化,提高测试效率,接口清单就是对 API 文档简化压缩,主要提取三要素(请求地址、请求方式、请求数据)
3、设计测试用例并参数化覆盖测试用例
4、编写脚本实现,并导入设计的测试数据;自动化接口脚本的设计:每次更新都要保证之前的代码没有受到影响,所以要把最基本的增删改查功能设计一套自动化执行的脚本,每次更新后执行这个脚本文件,查看是否老接口有影响(此时程序已经在执行了,测试的数据不能对现有的数据进行污染)
5、测试结果汇总,BUG提交

我们先看一下接口文档,新增学院信息
在这里插入图片描述
参数如下:
在这里插入图片描述

1、有效、无效等价类配合边界值
2、特殊情况:中文、英文、空格、空、符号
3、组合情况: 有效:所有值都填写正确的值
有效:除了slogan不填写,其它都写正确值 无效:dep_id不填写 无效:dep_name不填写
无效:master_name不填写 无效:dep_id 重复

测试数据,可以看资料中提供的“新增数据”
在这里插入图片描述
JMeter中创建线程组和HTTP信息头管理器

Content-Type application/json;character=utf-8

在这里插入图片描述
添加-配置元件-CSV Data Set Config
在这里插入图片描述
更改设置如下:
在这里插入图片描述
将CSV配置文件中的变量配置到JMeter中
在这里插入图片描述
注意线程组中的循环写成永远,要跑到文末最后一个
在这里插入图片描述
为了防止数据重复,清空数据库中原始数据
在这里插入图片描述
执行JMeter,查看结果如下:会发现有一些HTTP请求变红了
在这里插入图片描述
需要逐条和预期结果对比,比如第三条数据,这里T2001N明明已经插入了,再插入成功就是不对的,说明接口对于重复数据没有校验
在这里插入图片描述
如果我们需要给请求后增加编号以便查看行数
在这里插入图片描述
点击生成,拷贝生成的结果

${__counter(,)}

在这里插入图片描述
放到HTTP请求之后
在这里插入图片描述
查看结果树效果如下:
在这里插入图片描述
最后对错误数据记录-缺陷
在这里插入图片描述

1.1 搭建自动化脚本

创建SetUp线程组完成新增
创建TearDown线程组完成删除
这样能最大限度保证测试数据最后被清除
在这里插入图片描述
设置线程组即可修改和查询,为了保证线程组按照顺序来执行,独立运行这个√要勾上
在这里插入图片描述
增加HTTP信息头和HTTP请求默认值,全局使用
在这里插入图片描述

1.2 完善自动化脚本

先禁用其它线程组,只操作新增
在这里插入图片描述
执行一次新增,发现新增成功了
在这里插入图片描述
现在我们要对新增的这个HTTP请求
添加-后置处理器-正则表达式提取器,获取到dep_id
在这里插入图片描述
配置如下:
在这里插入图片描述

点击函数助理

配置如下:点击生成获取

${__setProperty(out,${val},)}

out:自定义名称
val记住一定要带上${}符号
在这里插入图片描述

对着线程组右键-添加-取样器-BeanShell取样器
在这里插入图片描述
配置如下:把上面生成的代码拷贝即可
在这里插入图片描述

然后再打开函数助手,我们要获取property

${__property(out,,)}

在这里插入图片描述
把这个变量配置到修改的URL中
在这里插入图片描述

给新增HTTP请求,增加响应断言,如果返回结果包含auto说明添加成功
在这里插入图片描述
给修改的HTTP请求增加断言
断言和HTTP是有层级关系的
在这里插入图片描述
调用后发现修改操作报错
在这里插入图片描述
说明我们的URL写错了更改为,因为之前在结尾没加/

/api/departments/${__property(out,,)}/

在这里插入图片描述

查看结果树:
在这里插入图片描述
数据库如下:
在这里插入图片描述
查询HTTP配置如下
在这里插入图片描述
添加响应断言:根据响应码200匹配
在这里插入图片描述
删除HTTP配置如下:
在这里插入图片描述

删除配置断言,204的响应码
在这里插入图片描述
查看结果树:都是正常的
在这里插入图片描述

数据库中也没有新增_auto的数据
在这里插入图片描述

二、场景模拟

根据实际需求是否进行性能测试:

2.1 弱压力测试

场景1:模拟半小时之内 1000 个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

JMeter测试如下
在这里插入图片描述
查看聚合报告
在这里插入图片描述

2.2 高并发

场景2:模拟 100 个用户同时访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

JMeter配置如下
添加-定时器-synchronizing Timer
在这里插入图片描述
同步定时器配置如下:
在这里插入图片描述

线程数100
ramp-up时间不修改,1即可
在这里插入图片描述
查看聚合报告
在这里插入图片描述

2.3 高频率

场景3:模拟2个用户以20QPS的频率访问服务器资源持续11秒,要求平均响应时间在3000ms内,错误率为0

新建常数吞吐量定时器
设置的目标吞吐量 = 20 * 60 = 1200
在这里插入图片描述
配置循环次数 = 20 * 10 = 200
在这里插入图片描述

查看聚合报告
在这里插入图片描述

三、生成图形化测试报告

在 JMeter 中可以以图形化(饼状图、柱状图…)的方式显示脚本运行结果,较之于聚合报告或查看结果
树组件实
现更直观,用户体验更友好
生成图形化测试报告
命令: jmeter -n -t 脚本文件 -l 日志文件 -e -o 目录
-n 无图形化运行
-t 被运行的脚本
-l 将运行信息写入日志文件
-e 生成测试报告
-o 指定报告输出目录

打开JMeter的bin目录
在这里插入图片描述
新建目录testplan,并且把刚才的性能测试计划保存到这里
在这里插入图片描述
在testplan底下新建webreport
在这里插入图片描述

执行如下指令

.\jmeter -n -t .\16.性能测试.jmx -l .\testplan\result.txt -e -o .\testplan\webreport\

生成的文件如下:
在这里插入图片描述

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

这篇关于Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626704

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4