网站外链要怎么做微信外链网站
网站外链要怎么做,微信外链网站,建设大型网站设计公司,信息流投放平台目录 说明工具准备工具配置jmeter 界面汉化配置汉化步骤汉化结果图 案例1#xff1a;测试接口接口准备线程组添加线程组配置线程组值线程数#xff08;Number of Threads#xff09;Ramp-Up 时间#xff08;Ramp-Up Period#xff09;循环次数#xff08;Loop Count… 目录 说明工具准备工具配置jmeter 界面汉化配置汉化步骤汉化结果图 案例1测试接口接口准备线程组添加线程组配置线程组值线程数Number of ThreadsRamp-Up 时间Ramp-Up Period循环次数Loop Count永远循环Forever延迟Delay http请求添加http请求配置HTTP请求值协议 Protocol服务器名称或 IPServer Name or IP端口号Port请求路径Path 察看结果树添加察看结果树察看结果树内容 聚合报告添加聚合报告聚合报告说明文件名Label样本 Samples平均值 Average中位数 Median90%百分位 90% Line最小值 Min最大值 Max异常 Error %吞吐量 Throughput传输数据量 KB per Second建立连接时间 Connect Time响应时间 Response Time平均吞吐量 Avg. Throughput总计 Total请求计数 Request Counts and Percentages 案例2导出报告导出html 报告 案例3 计算理论的并发用户数前提结果分析关键指标分析并发用户数估算公式 案例4 携带cookie请求说明接口准备配置测试计划线程组http请求添加结果监听器添加步骤添加指定的监听器 执行登录http请求添加正则表达式提取器说明介绍添加步骤正则表达式提取器配置说明 添加HTTP Cookie管理器添加HTTP Cookie管理器步骤配置HTTP Cookie管理器添加调试取样器添加步骤 运行线程组登录结果list数据查询结果调试取样器结果 说明
工具准备
apache-jmeter-5.4.1jdk8
工具配置
jmeter 界面汉化配置
汉化步骤
jmeter 界面默认是英文配置成中文。
打开 /bin/jmeter.porperties 文件将 默认的 languageen 改为 languagezh_CN 后重启jmeter。
汉化结果图 案例1测试接口
接口准备
spring mvc 项目创建一个接口来模拟测试的目标接口。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Objects;RestController
RequestMapping(value test)
public class TestController {GetMapping(value test)public Object test() {return new HashMapString,Object() {{put(message, 成功);}};}
}线程组
添加线程组 配置线程组值 线程数Number of Threads
定义 这个值指定了要创建的虚拟用户线程的数量。每个线程都代表一个独立的用户因此线程数越多模拟的并发用户数也就越多。使用场景 如果你想模拟 1000 个并发用户就设置线程数为 1000。
Ramp-Up 时间Ramp-Up Period
定义 Ramp-Up 时间是指所有线程虚拟用户启动所需的时间单位是秒。 例如如果设置了 100 个线程Ramp-Up 时间为 100 秒那么每秒会启动一个线程直到所有线程都被启动。Ramp-Up 时间设置得较长可以避免瞬间发起大量请求从而导致服务器负载过高。使用场景 如果你希望所有用户在 100 秒内启动那么 Ramp-Up 时间应设置为 100 秒。 通过这种方式你可以模拟逐步增加负载的场景。
循环次数Loop Count
定义 循环次数指定每个线程将执行的次数。如果设置为 1则每个线程只执行一次。如果设置为 -1则表示无限循环直到测试结束时停止。使用场景 如果你希望每个用户执行 10 次请求可以将 Loop Count 设置为 10如果希望每个用户一直执行直到测试结束则设置为 -1。
永远循环Forever
定义 这是一个复选框当勾选时线程将会不停地循环执行测试计划中的请求直到测试手动停止。使用场景 如果你正在进行压力测试并且希望线程永远执行直到你手动停止可以勾选此选项。
延迟Delay
定义 该选项可以为每个线程设置一个固定的启动延迟时间。这意味着每个线程启动时会等待指定的时间然后再开始执行请求。使用场景 这种配置适合于模拟用户之间有间隔的启动情况。
http请求
添加http请求 配置HTTP请求值
协议 Protocol
定义 指定协议类型可以选择 http 或 https。使用场景 如果你测试的是 HTTPS 服务选择 https
服务器名称或 IPServer Name or IP
定义 指定请求目标服务器的地址可以是域名如 www.example.com或 IP 地址如 192.168.1.1。使用场景 如果目标服务器是 www.example.com就填写 www.example.com。如果是通过 IP 地址访问则填写 IP。
端口号Port
定义 指定服务器的端口号默认情况下 HTTP 使用端口 80HTTPS 使用端口 443。如果服务器使用其他端口可以在此处指定。使用场景 如果你的服务器监听在 8080 端口则需要设置 8080。
请求
定义 选择 HTTP 请求方法常见的方法包括 GET获取资源。 POST提交数据。 PUT更新数据。 DELETE删除资源。 HEAD请求资源的头信息。 OPTIONS请求可用的方法。 PATCH部分更新资源。使用场景 根据目标 API 或 Web 页面请求类型选择合适的 HTTP 方法。
路径Path
定义 指定访问的具体路径或资源。例如/login、/api/getData 等。使用场景 请求的具体接口路径如 https://www.example.com/api/getData 中/api/getData 为路径。
察看结果树
添加察看结果树 察看结果树内容 聚合报告
添加聚合报告 聚合报告说明 文件名
报告数据输出的文件。必须要先创建此文件才能指定。报告结果写入此文件。用于导出报告。具体查看本文的导出html报告部分
Label
定义 测试请求的名称。通常是测试中每个 HTTP 请求的名称。使用场景 每个请求或事务的标识符可以通过它来查看特定请求的性能表现。
样本 Samples
定义 样本数量表示此请求在整个测试过程中被执行的次数。使用场景 查看某个请求执行的次数。例如HTTP 请求可能执行了 100 次。
平均值 Average
定义 所有请求响应时间的平均值单位是毫秒ms。使用场景 表示请求的平均响应时间。较高的平均响应时间可能表示服务器存在性能瓶颈。
中位数 Median
定义 响应时间的中位数单位是毫秒ms。使用场景 中位数是将所有响应时间按升序排列后处于中间位置的值。中位数可以更好地反映出“典型”响应时间避免了极端值的影响。
90%百分位 90% Line
定义 响应时间的第 90 百分位数表示 90% 的请求响应时间低于该值。使用场景 此值可以帮助分析大多数请求的响应时间特别是对用户体验影响较大的长时间响应请求。
最小值 Min
定义 响应时间的最小值单位是毫秒ms。使用场景 表示最短的响应时间。可以帮助判断在测试过程中是否有异常的快速响应。
最大值 Max
定义 响应时间的最大值单位是毫秒ms。使用场景 表示最长的响应时间。非常高的最大响应时间可能表示系统在某些时刻出现了严重的性能瓶颈。
异常 Error %
定义 错误率表示在所有请求中失败请求所占的百分比。使用场景 错误率高通常意味着系统存在故障或性能瓶颈可能需要检查相关的错误日志来进一步定位问题。
吞吐量 Throughput
定义 吞吐量表示每秒请求的数量requests per second, RPS。使用场景 吞吐量是衡量系统在单位时间内处理请求的能力较高的吞吐量通常意味着系统能够处理更多的用户请求。
传输数据量 KB per Second
定义 每秒传输的数据量单位是千字节KB/s。使用场景 表示在每秒钟内系统传输的数据量。较高的值通常表示系统处理大数据量的能力较强。
建立连接时间 Connect Time
定义 建立连接的时间单位是毫秒ms。通常用于 HTTP 请求的连接阶段。使用场景 较高的连接时间可能意味着网络延迟或服务器响应慢特别是在多用户场景下连接时间的优化尤为重要。
响应时间 Response Time
定义 响应时间单位是毫秒ms。使用场景 响应时间是指从发送请求到收到完整响应的时间它是评估系统性能最直接的指标之一。通常越低越好。
平均吞吐量 Avg. Throughput
定义 平均吞吐量表示所有请求的吞吐量的平均值。使用场景 平均吞吐量可以帮助判断系统的处理能力。如果某一时刻吞吐量明显下降可能存在性能瓶颈。
总计 Total
定义 总计行表示所有请求的合计数。使用场景 提供该测试计划所有请求的总的统计数据。
请求计数 Request Counts and Percentages
定义 聚合报告还会显示每个请求成功和失败的计数以及它们在所有请求中的比例。使用场景 可以帮助我们快速评估在负载测试中出现的错误情况和系统的稳定性。
案例2导出报告
导出html 报告
在空文件夹中创建一个 report.txt 的文件。在聚合报告的文件名中填写该文件的全路径。 执行测试。测试执行完成后 report.txt 文件中会有测试结果数据。将report.txt 文件的后缀名称更换成csv 即 report.csv创建一个空的文件夹存放生成的html。打开导出配置界面 配置导出点击 Generate report 按钮开始导出。 Results file: 选择步骤4中的report.csv文件 user.properties: 选择Jmeter 安装目录 bin 下的user.properties 文件。如下图 Output directory选择步骤5中创建的空文件夹 查看导出结果 导出结束之后在步骤5的文件夹中会生成报告html。用浏览器打开index.html 即可查看。如下图
案例3 计算理论的并发用户数
前提
按照案例1 步骤配置完成后能正常执行完成得到聚合报告。 将报告导出html后在html报告中可以查看到以下统计报告表。 例如统计报告表如下
结果分析
注意最大并发数需要结合其他信息如测试工具的配置、服务器资源利用率等来确定。以下分析只是基于html导出的统计报告表中的值推断的理论结果。
关键指标分析
Samples (请求数): 100Error % (错误率): 0.00%Average (平均响应时间): 198.56 msMin (最小响应时间): 98 msMax (最大响应时间): 269 msTransactions/s (每秒事务数): 362.32
并发用户数估算公式
并发用户数 平均响应时间(单位毫秒) * 每秒事务数 (单位次/秒) 上例的统计结果表中的理论并发用户估算值为 (198.56 * 1000) * 362.32 0.19856 * 362.32 约等于 72
案例4 携带cookie请求
说明
在进行接口测试的时候需要先进行登录对于传统的登录登录成功后后端使用session存储登录信息并将cookie信息返回给前端前端请求接口的时候需要携带上cookie进行请求。为此需要获取到登录成功返回的cookie信息存储在请求头中进行测试。
接口准备
package www.zhang.tomcat.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Objects;RestController
RequestMapping(value test)
public class TestController {/*** 模拟的登录接口*/GetMapping(value login)public Object login(HttpServletRequest request) {// 登录成功后设计session 设置sessionrequest.getSession().setAttribute(user, admin);return new HashMapString,Object() {{put(message, 成功);}};}/*** 模拟的查询接口*/GetMapping(value list)public Object list(HttpServletRequest request) {// 获取sessionObject user request.getSession().getAttribute(user);// 没有获取到对应登录信息if(Objects.isNull(user)){return new HashMapString,Object() {{put(message, fail not user);}};}return new HashMapString,Object() {{put(message, 成功user.toString());}};}
}
配置测试计划
线程组
按照案例1 添加线程组的步骤添加线程组此处省略
http请求
按照案例1 添加http请求的步骤添加线程组添加2个http请求。 登录请求login 查询请求 list
添加结果监听器
添加步骤 添加指定的监听器
此处主要是为了查看、学习不同监听器的结果而已。按照下图添加以下结果监听器。
执行登录http请求
按实际填写完成http登录请求相关的配置后启动1次登录测试并保证此次登录测试要成功。 在察看结果树监听器中可以看到请求记录。点击请求记录查看响应内容即可看到登录成功后返回的cookie的信息。如下图
添加正则表达式提取器
说明
由于登录成功后会在响应头中返回cookie的信息此时可以用提取器获取到响应头中的cookie的信息。
介绍
正则表达式提取器用于从服务器返回的响应数据中提取特定的信息。你可以使用它来提取匹配正则表达式的内容并将提取到的数据保存为 JMeter 变量供后续的请求使用。
添加步骤 正则表达式提取器配置说明 要检查的信息头 此处要在响应头中获取数据选择信息头。 引用名称 自定义变量名称获取到的值会赋值给这个变量。其他地前方使用此变量格式${变量名称} 正则表达式 根据填写的正则表达式规则来匹配到对应的值。 (.*) 通配符表示所有。 例如 根据登录成功后返回的响应头可得cookie中携带的sessionId的格式如下
HTTP/1.1 200
Set-Cookie: JSESSIONIDDFB85D3D2C35B36792B052E881400A4B; Path/; HttpOnly
Content-Type: application/json;charsetUTF-8
Transfer-Encoding: chunked
Date: Fri, 20 Dec 2024 09:12:14 GMT# JSESSIONIDsessionId;
JSESSIONID(.*); Path/从cookie中获取到sessionId 后只要携带此数据请求接口后端会自动根据此sessionId 找到登录信息。 模板 模板用于指定在响应中提取内容的位置。通常在正则表达式中使用捕获组模板就是指定使用哪个捕获组的内容. 例如此处只需要获取第一个捕获到的值。 模板格式 $序号$ 例如匹配第1个 $1$匹配第2个 $2$ 匹配数字 用于指定你想要提取第几个匹配项 0 表示提取所有匹配项。 1 表示提取第一个匹配项默认值。 … -1 表示提取最后一个匹配项。
添加HTTP Cookie管理器
在数据查询接口 list中 添加HTTP Cookie管理器用于把在登录接口中通过正则表达式提取到的登录sessionid数据获取放到请求头中。
添加HTTP Cookie管理器步骤 配置HTTP Cookie管理器
根据响应头中的格式数据进行填写
添加调试取样器
调试取样器来获取变量值用于查看正则表达式的变量是否能提取到值。
添加步骤 运行线程组
运行线程组查看结果
登录结果 list数据查询结果
请求头 响应结果
调试取样器结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87832.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!