Jmeter 场景测试:登录--上传--下载--登出

devtools/2024/10/15 20:20:50/

为了练习Jmeter的使用,今天我要测试的场景是“登录--上传--下载--登出”这样一个过程.

测试的目标是我曾经练手写的一个文件分享系统,它要求用户只有登录后才可以下载想要的文件。

Jmeter总体结构:

第一步:添加HTTP Cookie管理器

为了能够维持登录状态以便后续操作,需要向Jmeter添加一个HTTP Cookie管理器。添加后无需配置就可以。

第二步:添加HTTP提取器(登录)

 添加响应断言和观察结果树

第三步:添加HTTP提取器(上传)

因为这个待测系统上传文件的同时还要求携带一些其他参数,因此需要配置两个地方,如下两图所示:

 添加响应断言和查看结果树:

第四步:添加HTTP提取器(下载)

为了简化,地址固定了. 

由于Jmeter不能直接下载文件,我们需要使用Beanshell后置处理器并编写一些Java代码来协助下载,如下图:

 代码如下:

import java.io.*;
byte[] result = prev.getResponseData();
String file_name = "D:/m1/picture_${__time(,)}.jpeg";
vars.put("filename",file_name);
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();

为了判断文件是否下载成功,添加一个Beanshell断言(我看很多其他教程是没有这个功能的,我这个算是首创吗,哈哈)

 代码:

import java.io.File;File file=new File("${filename}");if(file.isFile()){log.info("get file");Failure=false;}
else
{	Failure=true;log.info("no file");}

第五步:添加HTTP提取器(登出)

 

添加一个断言和查看结果树

 

运行结果

真正的项目中,登录一般用的都是HTTPS协议,所以应该获取证书才行(这类教程CSDN上有,自己搜搜就行).本篇由于条件所限,只能拿HTTP练习.

 


http://www.ppmy.cn/devtools/4600.html

相关文章

计算机视觉动作识别——YOWO用于实时时空动作定位与识别的算法解析

摘要 时空动作定位要求将两种信息源整合到设计的架构中:(1) 来自先前帧的时间信息和(2) 来自关键帧的空间信息。当前的最先进方法通常使用单独的网络提取这些信息,并使用额外的机制进行融合以获得检测结果。YOWO是一个用于视频流中实时时空动作定位的统…

C++入门

目录 C入门 1. C关键字 2. 命名空间 2.1 命名空间定义 2.2 命名空间使用 3. C输入&输出 4. 缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 5. 函数重载 5.1 函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用 6.1 引用概念 6.2 引用特…

FastGPT+ChatGLM3本地部署

FastGPTChatGLM本地部署 本地部署硬性要求:显存13g以上 关于环境的安装就不多赘述,conda pip 可以解决大部分问题 ChatGLM本地运行 m3e-basechatglm3-6b 在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像 从git…

Axure中继器排序失效 /没变化解决

问题复现 通过设置交互条件后,但是没效果,查了很多资料,按照教程操作,仍旧没效果。 原因 结论先行:问题出在汉化包,你用了汉化包导致axure内部出错。最简单的办法,删除汉化文件,…

第七章 案例一:分析ARP解析过程

1、实验环境 主机A和主机B连接到交换机,并与一台路由器互连,如图7.17所示,路由器充当网关。 图7.17 实验案例一示意图 2、需求描述 查看 ARP 相关信息,熟悉在PC 和 Cisco 设备上的常用命令,设置主机A和主机B为同一个网段网关设置为路由接…

Webservice使用

Webservice使用教程 Webservice的交互模式是一个类似于CS结构的模式,因此它需要一个Server端与一个Client端。在Client端访问Server端的接口来实现Webservice的功能。 Server端 打开IDEA创建gradle模块 webservice-01-server1 然后再build.gradle.kts文件中添加以…

Day 14 网络协议

常见网络设备:交换机 路由器 中继器 多协议网关(路由器的前身) 交换机:用于连接统一网络的设备,实现内网设备通信。 从广义上分为:局域网交换机,广域网交换机 从网络构成分为:接…

对单片机的一点理解

前言 大一时学过一段时间的51单片机,后面就一直研究STM32和算法,最近工作搞51单片机有半年了,有一些自己的想法,跟公司的工程师也探讨了一些,结合聊天记录,写了这篇博客,希望对读者有帮助。 有…