5.5实例:轻商城项目性能测试
5.5.1 项目简介
一个电商购物项目,有着登录,首页,商品,购物车,订单等模块
5.5.2项目部署
1.首先需要安装VMware虚拟机
2.用虚拟机打开轻商城镜像文件(由黑马程序员提供)
3.登录方法:点击未列出,输入root,123456
4.打开终端输入ifconfig
使得虚拟机作为一个服务器启动,在后续步骤能打开网站的必要条件

打开电脑的cmd命令使用ping命令测试轻商城虚拟机的网络是否处于连接状态

在Windows系统中,找到C:\Windows\System32\drivers\etc目录下的hosts配置文件点击右键选择属性,将只读取消勾选。

在其中修改下列内容

若只读取消勾选后无法修改,可以考虑点击安全,进行编辑将修改允许

之后就可以在浏览器中搜索网址http://litemall.itheima.net:8082进入轻商城界面

5.5.3搭建测试环境
在进行后续步骤时有着三个部分
1.下载FinalShell
下载第一个并安装

安装过程中可能会出现提示需要Winpcap,点击确定便可以直接安装
2.下载ServerAgent服务器
下滑便可以找到,下载第一个

3.下载jmeter-plugins-manager插件

下载后需要将其放置到JMeter解压后的lib目录的ext文件夹中,启动JMeter
选择选项启动plugins manager

再在aavailable plugins中找到PerfMon(Servers Performance Monitoring)勾选,点击右下的重新启动。
因为我已经勾选结束,所以在这里已经无法找到,

5.5.4项目数据库连接
下载DBeaver
安装成功后打开链接数据库的窗口

填写内容如下,密码为123456

之后选择完成便可以成功链接

接下来需要构建测试数据,需要使用PyCharm运行下列的代码
代码来源黑马程序员
# 导包
import pymysql
# 创建连接
conn = pymysql.connect(host="192.168.110.131",user="root",password="123456",database="litemall",port=3306,charset='utf8')
# 创建游标
cursor = conn.cursor()
# 添加用户的SQL语句
user_sql = "INSERT INTO `litemall`.`litemall_user` (`id`, `username`, `password`, `gender`, `birthday`, `last_login_time`, `last_login_ip`, `user_level`, `nickname`, `mobile`, `avatar`, `weixin_openid`, `session_key`, `status`, `add_time`, `update_time`, `deleted`) VALUES ({}, 'user{}', '$2a$10$lTu9qi0hr19OC800Db.eludFr0AXuJUSrMHi/iPYhKRlPFeqJxlye', 1, NULL, '2022-07-04 15:52:04', '192.168.136.1', 0, 'user{}', '{}', '', '', '', 0, '2019-04-20 22:17:43', '2022-07-04 15:52:04', 0);"
# 添加地址的SQL语句
address_sql = "INSERT INTO `litemall`.`litemall_address` (`id`, `name`, `user_id`, `province`, `city`, `county`, `address_detail`, `area_code`, `postal_code`, `tel`, `is_default`, `add_time`, `update_time`, `deleted`) VALUES ({}, 'user{}', {}, '北京市', '市辖区', '东城区', '长安街1000号', '110101', '', '{}', 0, '2022-06-30 17:57:07', '2022-06-30 17:57:07', 0);"
# 循环插入数据
user_start = 100
for i in range(100):
user_id = user_start + i
mobile = "13011" + str(user_id)
address_id = user_start + i
print("插入第{}条用户数据,用户ID为{}".format(i+1,user_id))
cursor.execute(user_sql.format(user_id,user_id,user_id,mobile))
cursor.execute(address_sql.format(address_id, user_id, user_id, mobile))
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
为了避免在性能测试的过程中,商品库存耗尽而导致脚本失败,下面还需要为数据库中的商品表添加10万条商品数据。
在DBeaver数据库中执行如下

5.5.5性能测试需求分析
由开发人员给与(详情见黑马程序员)
需要注意的是有的需要登录进入才能进行需要新的请求头,而文档中并没有给出
因为在登录之后便直接获取token,所以具体需要该请求头的位置并没有在后面的测试用例中写出
5.5.6制定性能测试计划
主要分为测试目的,测试范围,测试策略,测试进度与分工
(详细内容见黑马程序员)
5.5.7设计性能测试用例

5.5.8编写测试脚本
打开Jmeter
编辑http请求默认值

在设置请求头

设置线程

添加登录请求

在登录所获得的内容中提取token用于后面登录

将获得的token添加到请求头中

其他内容只需要正常添加请求便可以

添加查看结果树方便查看具体的错误问题

添加聚合报告,观察具体信息

5.5.9性能测试监控
打开FinalHhell找到左上角的白色文件建立SSH链接

输入下列内容

点击确认后双击开始链接

之后将之前下载的ServerAgent-2.2.3.zip放如下面显示文件的位置,也可以点击下方的上传。
分别运行列命令,进行链接,作用分别为,解压,进入文件,给与权限,启动startAgent.sh
unzip ServerAgent-2.2.3.zip
cd ServerAgent-2.2.3
chmod –R 777 *
./startAgent.sh
接着在JMeter创建监听器

加入下列关于CPU等内容

运行线程,最后结果


保存方法,点击右键选择最下风保存为csv格式。

5.5.10性能分析和调优
可以看到cup一直是满的,具体的调优工作由开发人员进行
5.5.11性能测试报告
进入JMeter下的bin文件夹,打开命令框
只需要在命令框中运行下列命令便可以生成性能报告,引号中的内容为文件所在地点,./report代表在这个目录下生成这个文件夹,需要注意运行下列命令时不不能有这个文件夹
jmeter -n -t "C:\Users\31194\Desktop\test\5\anli.jmx" -l result.jtl -e -o ./report
如果出现错误可以根据提示考虑执行下列命令
.\jmeter -n -t "C:\Users\31194\Desktop\test\5\anli.jmx" -l result.jtl -e -o ./report
具体位置如下,在bin文件下找到report文件夹

具体结果

更多推荐



所有评论(0)