基于 JMeter 实现 WEB 项目性能测试,环境搭建与测试用例编写

news2024/12/24 13:54:16

目录

 前言:

一、JDK 安装

二、Tomcat 安装

三、Redis 安装

四、数据库安装

五、WEB 项目搭建

六、性能测试项目搭建

七、总结


 前言:

性能测试是软件开发中必不可少的一环,它可以帮助开发者提高程序的稳定性,优化性能,尽早发现漏洞等。本篇文章将介绍如何搭建一个性能测试环境来测试 WEB 项目的性能。

一、JDK 安装

首先,我们需要安装 JDK。在 Linux 环境中,可以使用下面的命令进行安装:

sudo apt-get update 
sudo apt-get install -y openjdk-8-jdk

安装完成后,使用以下命令检查是否安装成功:

java -version

如果可以看到类似下面的输出:

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

就说明安装成功了。

二、Tomcat 安装

接下来,我们要安装 Tomcat。Tomcat 是一个常用的 Java Web 应用服务器,我们可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install -y tomcat9

安装完成后,使用以下命令检查是否安装成功:

sudo systemctl status tomcat9

如果可以看到类似下面的输出:

● tomcat9.service - Apache Tomcat 9 Web Server
   Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/tomcat9.service.d
           └─override.conf
   Active: active (running) since Sat 2023-05-25 03:45:19 UTC; 20min ago
     Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
 Main PID: 17065 (java)
    Tasks: 38 (limit: 4915)
   CGroup: /system.slice/tomcat9.service
           └─17065 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/usr/share/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx128M -XX:+UseConcMarkSweepGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/share/tomcat9/bin/bootstrap.jar:/usr/share/tomcat9/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat9 -Dcatalina.home=/usr/share/tomcat9 -Djava.io.tmpdir=/usr/share/tomcat9/temp org.apache.catalina.startup.Bootstrap start

May 25 03:45:19 localhost systemd[1]: Started Apache Tomcat 9 Web Server.

就说明安装成功了。

三、Redis 安装

Redis 是一款开源的高性能键值存储系统。我们可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install -y redis

安装完成后,使用以下命令检查是否安装成功:

redis-cli ping

如果可以看到输出:

PONG

说明安装成功了。

四、数据库安装

我们可以使用 MongoDB 作为数据库。可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install -y mongodb

安装完成后,使用以下命令检查是否安装成功:

sudo systemctl status mongodb

如果可以看到类似下面的输出:

● mongodb.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2023-05-25 03:45:33 UTC; 28min ago
     Docs: https://docs.mongodb.com/manual
 Main PID: 17118 (mongod)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/mongodb.service
           └─17118 /usr/bin/mongod --config /etc/mongodb.conf

就说明安装成功了。注意:MongoDB 默认启动是没有开启认证功能的。

五、WEB 项目搭建

在进行性能测试时,我们需要一个能够提供静态和动态页面的 Web 项目。这里我们使用一个简单的 Spring Boot 项目作为例子。首先,我们需要安装 Maven:

sudo apt-get update
sudo apt-get install -y maven

安装完成后,我们可以使用以下命令生成一个简单的 Spring Boot 项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

生成项目后,我们需要在 pom.xml 中引入 Spring Boot 的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.4.5</version>
</dependency>

接下来,我们需要在 Application 类中编写一个简单的控制器:

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

最后,我们可以使用以下命令运行该项目:

mvn spring-boot:run

运行成功后,可以在浏览器中访问 `http://localhost:8080/hello` 查看结果。

六、性能测试项目搭建

接下来,我们需要编写一个性能测试项目。在性能测试项目中,我们通常会编写一系列测试用例,用于测试系统的稳定性和性能。这里,我们使用 JMeter 编写一个简单的测试用例。

首先,我们需要安装 JMeter:

sudo apt-get update
sudo apt-get install -y jmeter

安装完成后,我们可以使用以下命令启动 JMeter:

jmeter

启动后,我们需要添加一个线程组。在左侧的面板中找到并点击“线程组”节点,然后点击“添加”按钮。在弹出的对话框中,我们可以设置参数,例如线程数、循环次数等。

接下来,我们需要添加一个 HTTP 请求。在左侧的面板中找到并点击“HTTP 请求”节点,然后在右侧的面板中设置参数,例如 HTTP 请求的 URL 等。

最后,我们需要为测试用例添加一个结果收集器。在左侧的面板中找到并点击“查看结果树”节点,然后点击“添加”按钮,选择“Summary Report”,并在右侧的面板中设置参数。

设置完成后,我们可以点击“运行”按钮,启动测试用例。

七、总结

本篇文章介绍了如何搭建一个性能测试环境来测试 Web 项目的性能。我们先安装了 JDK、Tomcat、Redis 和 MongoDB,然后在这个环境中搭建了一个简单的 Spring Boot 项目,并编写了一个基于 JMeter 的测试用例。通过这篇文章,读者可以了解到如何构建一个基本的性能测试环境以及如何编写一个简单的测试用例。

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些性能测试前进之路的必须品,希望能对你带来帮助。(性能测试,大厂面试真题、简历模板等等)。
【测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=MyTLBK9pZ74qgHUVVZfITmBhScUS5qPC&authKey=hUGxEWvPxbiSTszm1V9wE6Z%2FFpVNEdf%2BzEe4UXSvDPN8LPV5WcLAO%2BQ0RLX5tKCR&noverify=0&group_code=574737577

 

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

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

相关文章

【产品经理】产品体验报告的思路

&#xff08;一&#xff09;产品概述 &#xff08;1&#xff09;体验环境 对于app来说&#xff0c;无非就是体验产品所用的机型&#xff0c;系统&#xff0c;然后app版本&#xff0c;体验时间&#xff0c;体验人等方面的信息。 &#xff08;2&#xff09;产品的概括或简介说…

基于LLMs的多模态大模型(Visual ChatGPT,PICa,MM-REACT,MAGIC)

当LLMs已经拥有了极强的对话能力后&#xff0c;如何使其拥有视觉和语音等多模态能力是紧接而来的热点&#xff08;虽然GPT4已经有了&#xff09;&#xff0c;这个系列将不定期更新一些利用LLMs做多模态任务的文章。 直觉上&#xff0c;如果直接训练一个类似chatgpt架构的多模态…

7种PCB走线方式

01电源布局布线相关 数字电路很多时候需要的电流是不连续的&#xff0c;所以对一些高速器件就会产生浪涌电流。 如果电源走线很长&#xff0c;则由于浪涌电流的存在进而会导致高频噪声&#xff0c;而此高频噪声会引入到其他信号中去。 而在高速电路中必然会存在寄生电感和寄…

SSM 如何使用 ShardingSphere 实现数据库分库分表

SSM 如何使用 ShardingSphere 实现数据库分库分表 简介 在大规模数据应用场景下&#xff0c;单一数据库可能无法承载高并发的读写操作。为了解决这个问题&#xff0c;一种常见的方式是使用数据库分库分表技术。ShardingSphere 是一个支持多种关系型数据库的分布式数据库中间件…

带您看懂全国产串口服务器!如何使用一看便知

不可否认&#xff0c;目前工业现场仍然会有很多串口设备的存在&#xff0c;对于这些串口设备&#xff0c;如果想要联网&#xff0c;就必须要转换成网络接口&#xff0c;这时候就会用到全国产串口服务器。 全国产串口服务器提供串口转网络功能&#xff0c;能够将RS-232/485/422串…

盐城北大青鸟“北大青鸟杯”IT精英挑战赛设中心评审隆重开赛

为积极响应北大青鸟总部开展第十届“北大青鸟杯”全国IT精英挑战赛的号召&#xff0c;成就学员们的IT梦想&#xff0c;“北大青鸟杯”IT精英挑战赛&#xff08;设计组&#xff09;盐城卓晨中心评审于2023年5月25日下午1:00在人才大厦306教室正式开赛&#xff01; ​ 赛前&a…

【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

报表控件FastReport使用指南——使用NuGet包创建PDF文档

FastReport 是功能齐全的报表控件&#xff0c;可以帮助开发者可以快速并高效地为.NET&#xff0c;VCL&#xff0c;COM&#xff0c;ActiveX应用程序添加报表支持&#xff0c;由于其独特的编程原则&#xff0c;现在已经成为了Delphi平台最优秀的报表控件&#xff0c;支持将编程开…

低代码平台简介(10家国产化低代码平台详细介绍)

低代码平台&#xff1a;一个号称能在几分钟的时间里开发一套企业内部都可使用的系统开发工具。 本人曾做过一个测试&#xff0c;2人&#xff0c;历时8小时&#xff0c;用低代码平台成功搭建出一套“客户管理系统”。该系统所需要的15个子模块与40个界面。同样的功能如果用传统编…

什么是 sudo,为什么它如此重要?

在当今的技术世界中&#xff0c;Linux 操作系统广泛应用于各种环境&#xff0c;包括个人计算机、服务器和嵌入式设备。作为一种强大的开源操作系统&#xff0c;Linux 提供了丰富的安全功能&#xff0c;以保护系统和用户的数据安全。在 Linux 安全领域中&#xff0c;sudo 是一项…

接口测试的请求和响应

接口测试的请求和响应 在软件开发中&#xff0c;接口测试是必不可少的一环节。接口测试主要涉及到测试请求和响应的过程。请求是指客户端向服务器发送的一些指令或数据&#xff0c;而响应则是服务器对这些请求做出的回应。 请求通常包括请求方法、请求头以及请求体。请求方法有…

信息安全服务资质认证CCRC证书‖中国网络安全审查技术与认证中心

随着CCRC信息安全服务资质持证企业的增加&#xff0c;很多企业看着自己的同行纷纷获的CCRC证书&#xff0c;自身也想进行申报&#xff0c;但由于之前没有做过了解&#xff0c;像个无头苍蝇一样&#xff0c;所以对该资质申报的条件要求、申报的好处又不是那么清楚&#xff0c;接…

重塑DeFi:深入了解Solaris Network

Solaris Network已经在充满活力的去中心化金融&#xff08;DeFi&#xff09;领域崭露头角&#xff0c;成为一家颠覆性的平台&#xff0c;使用户能够创造和交易合成资产。凭借其致力于多链集成、创新功能和以社区为中心的方法&#xff0c;Solaris Network正在改变DeFi的格局&…

【PXIE301-203】基于PXIE总线的4路Cameralink Base图像模拟源

产品概述 PXIE301-203一款基于PXI Express总线的高性能4路CameraLink Base图像模拟源&#xff0c;板卡采用Xilinx的高性能Kintex-7系列FPGA作为主控制器&#xff0c;实现PCI Express总线接口的转换&#xff0c;图像数据的缓存&#xff0c;以及CameraLink图像时序的控制。该板卡…

记录::opencv编译,cmake编译vs动态库

环境&#xff1a;window7&#xff0c;cmake-gui&#xff0c;vs2013 opencv&#xff1a;3.4.4 opencv_contrib&#xff1a;3.4.4&#xff08;nonfree模块&#xff0c;主要为了用sift&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1OXg2IRaxTLTVqM2PVR2ZFA 提取码&a…

2023年企业网盘推荐:实测好用的工具

在数字化时代&#xff0c;企业内部的文件、资料等信息量越来越大。如何高效地管理和共享这些数据&#xff0c;成为企业管理者亟需解决的问题。企业网盘作为一种新型的信息技术工具&#xff0c;以其方便快捷、安全可靠等优点&#xff0c;受到越来越多企业的青睐。 企业网盘工具的…

非计算机专业 3 年外包闭关 180 天入职字节,鬼知道我是怎么过来的

面试 大家都知道&#xff0c;现在的测试面试是越来越难了&#xff01;主要原因无非是两个&#xff1a; 随着测试这个行业的兴起&#xff0c;不管是在家待业的、对自己现在工作不满意的、大学选错专业的、缺钱的、想自己学的等等这些人绝大部分都是选择了去学习测试&#xff01…

Linux:root登陆显示bash-4.2问题处理

情况描述&#xff1a; root账号登陆服务器后&#xff0c;显示如下。 正常显示应该是下面这样&#xff1a; userhostname 原因&#xff1a; 是因为/root目录下没有配置文件 解决&#xff1a; 使用root用户登录&#xff0c;再home目录中创建用户对应的文件夹&#xff0c;mkdi…

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(二)

【写在前面】 之前和大家分享过一下HarmonyOS应用开发相关问题&#xff0c;今天继续和大家分享&#xff01; 【前提简介】 本文档主要总结HarmonyOS开发过程中可能遇到的一些问题解答&#xff0c;主要围绕HarmonyOS展开&#xff0c;包括但不限于不同API版本HarmonyOS开发、UI…

CopyOnWriteArrayList中add有锁了为什么要copy

CopyOnWriteArrayList中add有锁了为什么要copy 看之前一定要去看之前juc常用中看下volatile的作用 主要还是看写操作&#xff0c;下面是他的源码 /*** Appends the specified element to the end of this list.** param e element to be appended to this list* return {code t…