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

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2