性能测试项目实战

  • 项目介绍和部署
  • 项目背景

轻商城项目是一个现在流行的电商项目。我们需要综合评估该项目中各个关键接口的性能,并给出优化建议,以满足项目上线后的性能需要。

  • 项目功能架构

前台商城:购物车、订单、支付、优惠券等
后台管理系统:商品管理、会员管理、商场管理、推广管理等。

  • 项目技术架构

前端:Vue技术框架开发,支持微信小程序、手机移动端、web界面
后端:SpringBoot框架开发,MySQL做数据库
无论是前端代码,还是后端代码,都是存放在服务器上。
在这里插入图片描述

  • 前后端分离的项目
    在这里插入图片描述
  • 前后端不分离的项目
    在这里插入图片描述

对比两种方式:

  • 前后端分离的形式,数据传输的效率要高很多(JSON数据格式远小于HTML页面格式)
  • 前后端分离的形式,服务器不需要处理HTML页面逻辑,由浏览器自己完成减轻服务器的压力
  • 实际项目中,主要是使用前端后分离的形式。
  • 数据库设计

作用:

  • 构造测试时,监控数据库的性能指标,定位bug
  • 构造测试数据。
    在这里插入图片描述
  • 微商场项目的部署过程

  • 项目搭建步骤

这里是引用

  • 获取需求

客户方提出:

  • 能够提出明确需求的一般是金融、银行、电信、医疗等企业,他们一般对系统的性能要求高,并且对性能也非常了解。

根据历史运营数据分析,如:

  • 用户频繁使用的功能模块是哪些

  • 每月、每周、每天的峰值业务量是多少

竞品分析:

  • 对比同类型软件的性能指标结果
  • 提取性能测试点

业务维度提取:

  • 用户频繁使用的业务性能

  • 非常关键的业务功能

  • 特殊交易日或峰值交易的业务功能

  • 核心业务发生重大调整的业务功能

技术维度提取:

  • 资源占用非常高的业务功能
  • 确定性能测试目标

轻商城作为一个新开发的项目,性能测试目标包括:

  • 确定核心业务功能的TPS (单接口
  • 对业务流程(多接口组合)进行压测
  • 系统能在实际系统运行压力的情况下,稳定的运行24小时
    在这里插入图片描述
  • 性能测试计划及方案
  • 测试计划的核心内容:

    测试计划的核心内容:

  • 测试背景

  • 测试目的

    • 确定核心业务功能的TPS
    • 对业务流程(多接口组合)进行压测
    • 系统能在实际系统运行压力的情况下,稳定的运行24小时
  • 测试范围

  • 测试策略

    • 基准测试:先做基准测试,确定估算的标准

    • 负载测试:分别模拟5、10、30、50、100个用户对系统进行负载测试 ​

    • 查看不同并发时系统软件各项指标是否符合需求。

    • 稳定性测试:用200用户对系统进行7*24小时的不间断稳定性测试。

  • 风险控制

  • 交付清单

  • 速度与分工

  • 性能测试计划:

    性能测试计划

  • 测什么
    • 测试目的、测试范围
  • 谁来测
    • 测试的人工、进度、安排
  • 怎么测
    • 使用什么方法来进行
  • 性能测试用例设计

    性能测试用例设计


    测试用例模板:
    在这里插入图片描述

根据测试点逐条进行细化:

  • 接口维度来描述测试步骤
  • 性能测试数据,有明确要求,需要达到一定的业务量
  • 如果两个接口强绑定(结算、下订单),放在一个用例中间测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 编写测试脚本

    编写测试脚本

常用测试元件:
1.取样器-HTTP请求

2.配置元件-HTTP请求默认值

3.配置元件-用户定义的变量

4.后置处理器-JSON提取器

5.断言-响应数据

6.断言-JSON数据

7.监听器-查看结果树

8.监听器-聚合报告

Jmeter脚本的基本结构:

1.创建测试用例结构

2.设置HTTP请求默认值

3.用户定义的变量

4.添加监听器-查看结果树

5.添加监听器-聚合报告
在这里插入图片描述

编写脚本的要点:

单接口测试脚本:

(1)登录脚本

  • 添加HTTP请求默认值:设置HTTP请求中的默认部分(协议、域名、端口、编码格式)
    在这里插入图片描述
  • 添加HTTP信息头管理,设置HTTP请求的头域
    在这里插入图片描述
  • 添加线程组-登录
  • 添加HTTP请求-登录,填写路径和请求参数
  • 在HTTP请求下添加断言:
    • 如果做接口测试,必须断言 响应中的业务数据,可以加上状态码和描述信息
    • 如果做性能测试,可以 只添加状态码和描述信息 断言

(2)进入首页、搜索商品、获取商品详情
进入首页:

  • 请求:
    在这里插入图片描述
  • 断言:响应状态码、errmsg

搜索商品:

  • 请求:
    在这里插入图片描述
  • 断言:
    • 响应状态码、errmsg
    • 如果是接口测试脚本,必须针对响应中的商品数量进行断言(数据库)

获取商品详情

  • 请求:
    在这里插入图片描述
  • 断言:
    • 状态码、errmsg
    • 如果是接口测试脚本,需要针对响应中的商品的详细数据进行对比(数据库)

(3)加入购物车的脚本

  • 添加请求1:登录
  • 添加JSON提取器,提取token
    在这里插入图片描述
  • 将token设置在HTTP信息头管理器中
    在这里插入图片描述
  • 添加请求2:加入购物车
    在这里插入图片描述
  • 添加断言
    • 状态码,errmsg
    • 如果是接口测试脚本,需要再查询我的购物车,检查我的购物车返回的数据是否与加入购物车 返回的数据一致。

(4)查看我的购物车、结算下订单、查看我的订单
查看我的购物车:

  • 先发送登录请求,提取token信息,添加查看购物车请求,将token信息赋值为X-Litemall-Token头域,填写请求路径和参数
    在这里插入图片描述
  • 响应:
    • 状态码,errmsg
    • 如果是接口测试脚本,需要断言响应报文中的购物车中的商品总数量或者商品总价值

提交订单:

  • 请求:

    • (1)先发送登录请求,提取token信息,
    • (2)添加结算请求,将token信息为X-Litemall-Token头域,填写请求路径和参数
    • (3)添加下订单请求,将token信息为X-Litemall-Token头域,填写请求路径和参数(注意地址ID必须与用户ID匹配)
  • 响应:

    • 状态码,errmsg
    • 如果是接口测试脚本,需要断言响应报文中的订单数据,与数据库中订单表中的订单数量一致。

业务流程的测试脚本:

  • 将业务流程中的所有单接口的脚本组装在一起
  • 注意所有的脚本组装在一起时,数据是否一致
    在这里插入图片描述
  • 搭建测试环境

    搭建测试环境

性能测试环境的特点:

  • 独占性
  • 尽量保持性能测试环境与真实生产环境的一致性。
    • 硬件环境
      • 包括服务器环境、网络环境等。
    • 软件环境
      • 版本一致性:包括操作系统、数据库、被测应用程序、第三方软件等。
      • 配置一致性:包括操作系统、数据库、被测应用程序、第三方软件等。
    • 使用场景的一致性
      • 基础业务数据的的一致性
      • 业务操作模式的一致性:尽量模拟真实场景下用户的使用情况。

构造性能测试数据:

目的:压测环境中的数据量尽量与生产环境中的数量一致

方法:为了快速创建大量数据,可以直接操作数据库进行添加。

  • 准备插入数据的SQL语句
  • 循环执行SQL语句来插入数据
    • 导包
    • 连接数据库
    • 创建游标 执行SQL语句
      • 将SQL语句中唯一的字段,使用占位符{}来替换,方便在脚本中传递不同的值。
      • 编写脚本,循环执行sql语句插入对应的商品记录
    • 关闭游标
    • 关闭连接
  • 练习1:通过编写python脚本,构造10万条商品记录
# 导包
import  pymysql
#连接数据库
conn = pymysql.Connect(host="192.168.0.103", port=3306, user="root", password='123456', database='litemall', charset='utf8')
#创建游标
cursor =conn.cursor()
#执行SQL语句

# 插入商品表
sql1="INSERT INTO `litemall`.`litemall_goods` (`id`, `goods_sn`, `name`, `category_id`, `brand_id`, `gallery`, `keywords`, `brief`, `is_on_sale`, `sort_order`, `pic_url`, `share_url`, `is_new`, `is_hot`, `unit`, `counter_price`, `retail_price`, `detail`, `add_time`, `update_time`, `deleted`) VALUES ({}, '{}', '母亲节礼物-舒适安睡组合_{}', 1008008, 1001020, '[\"http://yanxuan.nosdn.127.net/355efbcc32981aa3b7869ca07ee47dac.jpg\", \"http://yanxuan.nosdn.127.net/43e283df216881037b70d8b34f8846d3.jpg\", \"http://yanxuan.nosdn.127.net/12e41d7e5dabaf9150a8bb45c41cf422.jpg\", \"http://yanxuan.nosdn.127.net/5c1d28e86ccb89980e6054a49571cdec.jpg\"]', '', '安心舒适是最好的礼物', 1, 1, 'http://yanxuan.nosdn.127.net/1f67b1970ee20fd572b7202da0ff705d.png', '', 1, 0, '件', 2618.00, 2598.00, '<p><img src=\"http://yanxuan.nosdn.127.net/3ddfe10db43f7df33ba82ae7570ada80.jpg\" _src=\"http://yanxuan.nosdn.127.net/3ddfe10db43f7df33ba82ae7570ada80.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/7682b7930b4776ce032f509c24a74a1e.jpg\" _src=\"http://yanxuan.nosdn.127.net/7682b7930b4776ce032f509c24a74a1e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e0bb6a50e27681925c5bb26bceb67ef4.jpg\" _src=\"http://yanxuan.nosdn.127.net/e0bb6a50e27681925c5bb26bceb67ef4.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/ba63b244c74ce06fda82bb6a29cc0f71.jpg\" _src=\"http://yanxuan.nosdn.127.net/ba63b244c74ce06fda82bb6a29cc0f71.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/3c7808c3a4769bad5af4974782f08654.jpg\" _src=\"http://yanxuan.nosdn.127.net/3c7808c3a4769bad5af4974782f08654.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/71798aaac23a91fdab4d77e1b980a4df.jpg\" _src=\"http://yanxuan.nosdn.127.net/71798aaac23a91fdab4d77e1b980a4df.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c88cbb2dd2310b732571f49050fe4059.jpg\" _src=\"http://yanxuan.nosdn.127.net/c88cbb2dd2310b732571f49050fe4059.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/5dfdcd654e0f3076f7c05dd9c19c15ea.jpg\" _src=\"http://yanxuan.nosdn.127.net/5dfdcd654e0f3076f7c05dd9c19c15ea.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/bd55d6ef7af69422d8d76af10ee70156.jpg\" _src=\"http://yanxuan.nosdn.127.net/bd55d6ef7af69422d8d76af10ee70156.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/bae571b22954c521b35e446d652edc1d.jpg\" _src=\"http://yanxuan.nosdn.127.net/bae571b22954c521b35e446d652edc1d.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e709c4d9e46d602a4d2125e47110f6ae.jpg\" _src=\"http://yanxuan.nosdn.127.net/e709c4d9e46d602a4d2125e47110f6ae.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/83e41915035c418db177af8b1eca385c.jpg\" _src=\"http://yanxuan.nosdn.127.net/83e41915035c418db177af8b1eca385c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/f42c561e6935fe3e0e0873653da78670.jpg\" _src=\"http://yanxuan.nosdn.127.net/f42c561e6935fe3e0e0873653da78670.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/8317726fbae80b98764dc4c6233a913e.jpg\" _src=\"http://yanxuan.nosdn.127.net/8317726fbae80b98764dc4c6233a913e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/ba904b7c948b8015db2171435325270f.jpg\" _src=\"http://yanxuan.nosdn.127.net/ba904b7c948b8015db2171435325270f.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/4969c73d0d8f29bffb69529c96ca4889.jpg\" _src=\"http://yanxuan.nosdn.127.net/4969c73d0d8f29bffb69529c96ca4889.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/d80b9b8c5c31031d1cd5357e48748632.jpg\" _src=\"http://yanxuan.nosdn.127.net/d80b9b8c5c31031d1cd5357e48748632.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/3fe79bdae40662a7b1feed3179d3dd1f.jpg\" _src=\"http://yanxuan.nosdn.127.net/3fe79bdae40662a7b1feed3179d3dd1f.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/79eef059963b12479f65e782d1dca128.jpg\" _src=\"http://yanxuan.nosdn.127.net/79eef059963b12479f65e782d1dca128.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e5a8f64f4297ccc01b41df98b0f252c8.jpg\" _src=\"http://yanxuan.nosdn.127.net/e5a8f64f4297ccc01b41df98b0f252c8.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a940b9e9525c4861407e4c3b07b02977.jpg\" _src=\"http://yanxuan.nosdn.127.net/a940b9e9525c4861407e4c3b07b02977.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/224b8b81cbe12e4ad060a50f1e26601a.jpg\" _src=\"http://yanxuan.nosdn.127.net/224b8b81cbe12e4ad060a50f1e26601a.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/85e151647452fad718effb7b1adc18e2.jpg\" _src=\"http://yanxuan.nosdn.127.net/85e151647452fad718effb7b1adc18e2.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/d47444ff3bb9dc0aa4ab1f9b84d83768.jpg\" _src=\"http://yanxuan.nosdn.127.net/d47444ff3bb9dc0aa4ab1f9b84d83768.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/136262743f0c849cc0c55c8e7963dd7e.jpg\" _src=\"http://yanxuan.nosdn.127.net/136262743f0c849cc0c55c8e7963dd7e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/331a97cbaff5b25a3b08ed7cdfe29df9.jpg\" _src=\"http://yanxuan.nosdn.127.net/331a97cbaff5b25a3b08ed7cdfe29df9.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/89b450aa0a8afe1db566dcad926f1fe8.jpg\" _src=\"http://yanxuan.nosdn.127.net/89b450aa0a8afe1db566dcad926f1fe8.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c1cf94f13b7280a97e751cebe573fa78.jpg\" _src=\"http://yanxuan.nosdn.127.net/c1cf94f13b7280a97e751cebe573fa78.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/1822c23def83b77e7607c24237eeec74.jpg\" _src=\"http://yanxuan.nosdn.127.net/1822c23def83b77e7607c24237eeec74.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/2af234312b3914d6d0bc316f92134614.jpg\" _src=\"http://yanxuan.nosdn.127.net/2af234312b3914d6d0bc316f92134614.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c4f8ab2b3813275d954a8bedcf902d26.jpg\" _src=\"http://yanxuan.nosdn.127.net/c4f8ab2b3813275d954a8bedcf902d26.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/42f18842ff0c92ed849c4401ae47bb61.jpg\" _src=\"http://yanxuan.nosdn.127.net/42f18842ff0c92ed849c4401ae47bb61.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a8ea64a35799e50ab31ecb65345fe8f4.jpg\" _src=\"http://yanxuan.nosdn.127.net/a8ea64a35799e50ab31ecb65345fe8f4.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/18759fa90cd153bdd744280807c3c155.jpg\" _src=\"http://yanxuan.nosdn.127.net/18759fa90cd153bdd744280807c3c155.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/431f00d068a8e747959deb3b7bdd495a.jpg\" _src=\"http://yanxuan.nosdn.127.net/431f00d068a8e747959deb3b7bdd495a.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/5bd3b44f1f4c627bfa39f7809e866ec6.jpg\" _src=\"http://yanxuan.nosdn.127.net/5bd3b44f1f4c627bfa39f7809e866ec6.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/7fc36778fe2f6129b9c26e8298c5be7e.jpg\" _src=\"http://yanxuan.nosdn.127.net/7fc36778fe2f6129b9c26e8298c5be7e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c568432e3d5ab6786cd9dcae8008891b.jpg\" _src=\"http://yanxuan.nosdn.127.net/c568432e3d5ab6786cd9dcae8008891b.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/ec82ff5aecafa48807117da68cce2ce9.jpg\" _src=\"http://yanxuan.nosdn.127.net/ec82ff5aecafa48807117da68cce2ce9.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/b8eccbed570da595e6f8a71ed4abc42c.jpg\" _src=\"http://yanxuan.nosdn.127.net/b8eccbed570da595e6f8a71ed4abc42c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/9cae1fed6ecefcd61435fe6e2c700fd6.jpg\" _src=\"http://yanxuan.nosdn.127.net/9cae1fed6ecefcd61435fe6e2c700fd6.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e306a418f82777399f5e88b93cca22db.jpg\" _src=\"http://yanxuan.nosdn.127.net/e306a418f82777399f5e88b93cca22db.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a66d717084e23864ce079f936557709f.jpg\" _src=\"http://yanxuan.nosdn.127.net/a66d717084e23864ce079f936557709f.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/6ae06c6505cdbf87a0210fe3b8727d5f.jpg\" _src=\"http://yanxuan.nosdn.127.net/6ae06c6505cdbf87a0210fe3b8727d5f.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/58ac2086725b0ba2fe800195f274a0b4.jpg\" _src=\"http://yanxuan.nosdn.127.net/58ac2086725b0ba2fe800195f274a0b4.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/5e2e9d9eb099647fbe041ec6645ac034.jpg\" _src=\"http://yanxuan.nosdn.127.net/5e2e9d9eb099647fbe041ec6645ac034.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/8154357c0fab82bd4e67cda9aaa128c0.jpg\" _src=\"http://yanxuan.nosdn.127.net/8154357c0fab82bd4e67cda9aaa128c0.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/4325763b738ec3183ecf0d82b2b28e32.jpg\" _src=\"http://yanxuan.nosdn.127.net/4325763b738ec3183ecf0d82b2b28e32.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/06d8ea9d10035a00f26c5c52cc601ca7.jpg\" _src=\"http://yanxuan.nosdn.127.net/06d8ea9d10035a00f26c5c52cc601ca7.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/499f30b9e69b5dddf3db36f105756111.jpg\" _src=\"http://yanxuan.nosdn.127.net/499f30b9e69b5dddf3db36f105756111.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/ed7e1733d54e711a560edb3a76f1a60c.jpg\" _src=\"http://yanxuan.nosdn.127.net/ed7e1733d54e711a560edb3a76f1a60c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/b6474347eebdb917d2e827fd526dd01c.jpg\" _src=\"http://yanxuan.nosdn.127.net/b6474347eebdb917d2e827fd526dd01c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/b2c0691f9204c5ebc94b4ff678919ca7.jpg\" _src=\"http://yanxuan.nosdn.127.net/b2c0691f9204c5ebc94b4ff678919ca7.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/b4811e702a6884a9251d7cc9e3b06b6f.jpg\" _src=\"http://yanxuan.nosdn.127.net/b4811e702a6884a9251d7cc9e3b06b6f.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/d518783c054695acf329e81d597fdec3.jpg\" _src=\"http://yanxuan.nosdn.127.net/d518783c054695acf329e81d597fdec3.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/835ce09e785cca635c176008975053a1.jpg\" _src=\"http://yanxuan.nosdn.127.net/835ce09e785cca635c176008975053a1.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/769af780de81a302c0a3b03ed8e6c528.jpg\" _src=\"http://yanxuan.nosdn.127.net/769af780de81a302c0a3b03ed8e6c528.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/da34f99daf9141f0fe56a766461b8485.jpg\" _src=\"http://yanxuan.nosdn.127.net/da34f99daf9141f0fe56a766461b8485.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/d7c9cd8722a2f9a78e158ce02ec5d4f2.jpg\" _src=\"http://yanxuan.nosdn.127.net/d7c9cd8722a2f9a78e158ce02ec5d4f2.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/09ea18953884b15227819e326103462b.jpg\" _src=\"http://yanxuan.nosdn.127.net/09ea18953884b15227819e326103462b.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/5ef728213983842edf1aec27b2c1f5b6.jpg\" _src=\"http://yanxuan.nosdn.127.net/5ef728213983842edf1aec27b2c1f5b6.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/95409f2a884dcfeaabfe5e61fcf9ec37.jpg\" _src=\"http://yanxuan.nosdn.127.net/95409f2a884dcfeaabfe5e61fcf9ec37.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/6807836dc2a940ba56ea10c7a63b14c9.jpg\" _src=\"http://yanxuan.nosdn.127.net/6807836dc2a940ba56ea10c7a63b14c9.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e1d976d06853e7a0e6c9cc4ab484ac8a.jpg\" _src=\"http://yanxuan.nosdn.127.net/e1d976d06853e7a0e6c9cc4ab484ac8a.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/47f5673dec5005092f6d897d6335966c.jpg\" _src=\"http://yanxuan.nosdn.127.net/47f5673dec5005092f6d897d6335966c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/1b0109abd0e6a0d13fa2423a96c1167e.jpg\" _src=\"http://yanxuan.nosdn.127.net/1b0109abd0e6a0d13fa2423a96c1167e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/916111a8f94cc0bd39375b3dcac14e35.jpg\" _src=\"http://yanxuan.nosdn.127.net/916111a8f94cc0bd39375b3dcac14e35.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c1360df3d6b703c5df9b2f47a2a3d12e.jpg\" _src=\"http://yanxuan.nosdn.127.net/c1360df3d6b703c5df9b2f47a2a3d12e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/1d5a31eb93ef873a165993bd99f29df1.jpg\" _src=\"http://yanxuan.nosdn.127.net/1d5a31eb93ef873a165993bd99f29df1.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/997a48948b89dd7261ed5a59ba884f45.jpg\" _src=\"http://yanxuan.nosdn.127.net/997a48948b89dd7261ed5a59ba884f45.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/eb96d9689735c9f4019ebf76da43b2b2.jpg\" _src=\"http://yanxuan.nosdn.127.net/eb96d9689735c9f4019ebf76da43b2b2.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a92cf2172e6cafe080e4511205568d79.jpg\" _src=\"http://yanxuan.nosdn.127.net/a92cf2172e6cafe080e4511205568d79.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c9e94570428f197292bb3f43609963f5.jpg\" _src=\"http://yanxuan.nosdn.127.net/c9e94570428f197292bb3f43609963f5.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/37145f06cce747311692ad7f276645db.jpg\" _src=\"http://yanxuan.nosdn.127.net/37145f06cce747311692ad7f276645db.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c9a698b71ed911364fc6f243006c241c.jpg\" _src=\"http://yanxuan.nosdn.127.net/c9a698b71ed911364fc6f243006c241c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e89db969711efaa441c43d6b90498a0c.jpg\" _src=\"http://yanxuan.nosdn.127.net/e89db969711efaa441c43d6b90498a0c.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/3803bb1a18229562f18943512b1d3524.jpg\" _src=\"http://yanxuan.nosdn.127.net/3803bb1a18229562f18943512b1d3524.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/235cbb5be905ac2b87e7e8f7c8d90144.jpg\" _src=\"http://yanxuan.nosdn.127.net/235cbb5be905ac2b87e7e8f7c8d90144.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/3e38435b3fdbae4ee80b83995592901e.jpg\" _src=\"http://yanxuan.nosdn.127.net/3e38435b3fdbae4ee80b83995592901e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/8ceb7cd3231585da60a74dd2c1aa9015.jpg\" _src=\"http://yanxuan.nosdn.127.net/8ceb7cd3231585da60a74dd2c1aa9015.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e151e225c2e30aab7ccf086094381577.jpg\" _src=\"http://yanxuan.nosdn.127.net/e151e225c2e30aab7ccf086094381577.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/363c19306953daf10968f4aa86617997.jpg\" _src=\"http://yanxuan.nosdn.127.net/363c19306953daf10968f4aa86617997.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/4237a392cf2e69b110ad4ecf35e44059.jpg\" _src=\"http://yanxuan.nosdn.127.net/4237a392cf2e69b110ad4ecf35e44059.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/da8ab35ada2dfe55006db01efa96e51a.jpg\" _src=\"http://yanxuan.nosdn.127.net/da8ab35ada2dfe55006db01efa96e51a.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/aa1d4fd00b7879db3f1051dc6d16aa87.jpg\" _src=\"http://yanxuan.nosdn.127.net/aa1d4fd00b7879db3f1051dc6d16aa87.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/302a8f2d997ff22bedcd837672cdafc2.jpg\" _src=\"http://yanxuan.nosdn.127.net/302a8f2d997ff22bedcd837672cdafc2.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a39ff68c00522aef0472402958a334d2.jpg\" _src=\"http://yanxuan.nosdn.127.net/a39ff68c00522aef0472402958a334d2.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/86ccd0eb677c8b552398869d11a8917e.jpg\" _src=\"http://yanxuan.nosdn.127.net/86ccd0eb677c8b552398869d11a8917e.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/a6d0ede352da947060d912d903646a5d.jpg\" _src=\"http://yanxuan.nosdn.127.net/a6d0ede352da947060d912d903646a5d.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e6a118bf95bdb61891409d25f193e9c4.jpg\" _src=\"http://yanxuan.nosdn.127.net/e6a118bf95bdb61891409d25f193e9c4.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c214066e9bf65d60bcebd691b5b1cbc1.jpg\" _src=\"http://yanxuan.nosdn.127.net/c214066e9bf65d60bcebd691b5b1cbc1.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/c301559ba3ee280bcbf2fc4269bfa9ca.jpg\" _src=\"http://yanxuan.nosdn.127.net/c301559ba3ee280bcbf2fc4269bfa9ca.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/573748f5c12ecb4515ba00a7b6e981dc.jpg\" _src=\"http://yanxuan.nosdn.127.net/573748f5c12ecb4515ba00a7b6e981dc.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/27bcc8bf512a7e6f994a9683b3deea82.jpg\" _src=\"http://yanxuan.nosdn.127.net/27bcc8bf512a7e6f994a9683b3deea82.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/e22a4507fd1e4b5ef859035e857ae419.jpg\" _src=\"http://yanxuan.nosdn.127.net/e22a4507fd1e4b5ef859035e857ae419.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/27b07b4ca709c33ad71b368f87781307.jpg\" _src=\"http://yanxuan.nosdn.127.net/27b07b4ca709c33ad71b368f87781307.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/ef31eb48bcb133728bffda7e1239b592.jpg\" _src=\"http://yanxuan.nosdn.127.net/ef31eb48bcb133728bffda7e1239b592.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/5f49aaaca59c0733ec92f100d01bc0af.jpg\" _src=\"http://yanxuan.nosdn.127.net/5f49aaaca59c0733ec92f100d01bc0af.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/818889261deb75044e1018ec53485d85.jpg\" _src=\"http://yanxuan.nosdn.127.net/818889261deb75044e1018ec53485d85.jpg\" style=\"\"/></p><p><img src=\"http://yanxuan.nosdn.127.net/200369f023243e2faeb18a2a0a352ef1.jpg\" _src=\"http://yanxuan.nosdn.127.net/200369f023243e2faeb18a2a0a352ef1.jpg\" style=\"\"/></p><p><br/></p>', '2018-02-01 00:00:00', '2018-02-01 00:00:00', 0);"

#商品参数表
sql2="INSERT INTO `litemall`.`litemall_goods_attribute` (`id`, `goods_id`, `attribute`, `value`, `add_time`, `update_time`, `deleted`) VALUES ({}, {}, '重要提醒', '活动时间:5月8日0点-5月14日24点。\n请在以上时间段内购买,其余时间均不可享受组合装优惠。', '2018-02-01 00:00:00', '2018-02-01 00:00:00', 0);"

#商品货品表
sql3="INSERT INTO `litemall`.`litemall_goods_product` (`id`, `goods_id`, `specifications`, `price`, `number`, `url`, `add_time`, `update_time`, `deleted`) VALUES ({}, {}, '[\"1.5m床垫*1+枕头*2\",\"玛瑙红\"]', 1500.00, 195, 'quality=90&thumbnail=200x200&imageView', '2018-02-01 00:00:00', '2024-06-13 08:51:33', 0);"

#商品规格表
sql4="INSERT INTO `litemall`.`litemall_goods_specification` (`id`, `goods_id`, `specification`, `value`, `pic_url`, `add_time`, `update_time`, `deleted`) VALUES ({}, {}, '规格', '1.8m床垫*1+枕头*2', '', '2018-02-01 00:00:00', '2018-02-01 00:00:00', 0);"

goods_start=100000
for i in range(100000):
    goods_id=goods_start+i
    print("插入第{}条商品数据,商品ID为{}".format(i+1,goods_id))
    cursor.execute(sql1.format(goods_id,goods_id,goods_id))
    cursor.execute(sql2.format(goods_id,goods_id))
    cursor.execute(sql3.format(goods_id,goods_id))
    cursor.execute(sql4.format(goods_id,goods_id))

conn.commit()

#关闭游标
cursor.close()
#关闭连接
conn.close()


在这里插入图片描述

  • 执行测试脚本

    执行测试脚本

  • 性能测试脚本执行
    登录脚本

登录脚本

1、准备数据

# 1、导包
import pymysql
# 2、创建连接
conn = pymysql.connect(host="192.168.0.103", port=3306, user="root", password="123456", database="litemall", charset="utf8")
# 3、创建游标
cursor = conn.cursor()
# 4、执行sql语句
sql1 = ("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, '2024-06-13 08:34:17', '192.168.234.1', 0, 'user{}', '{}', '', '', '', 0, '2019-04-20 22:17:43', '2024-06-13 08:34:17', 0);")
sql2 = ("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{}', {}, '北京市', '市辖区', '东城区', 'changyangqu', '110101', '', '{}', 0, '2024-06-11 22:29:21', '2024-06-12 22:20:09', 0);")

user_start = 100000
for i in range(100000):
    user_id = user_start + i
    print("插入第{}条用户数量,用户ID为{}".format(i+1, user_id))
    mobile = "13011"+str(user_id)
    addr_id = user_start+i
    cursor.execute(sql1.format(user_id, user_id, user_id, mobile))
    cursor.execute(sql2.format(user_id, user_id, user_id, mobile))
conn.commit()

# 5、关闭游标
cursor.close()

# 5、关闭连接
conn.close()


在这里插入图片描述
2、修改脚本

使用random函数,来保证每次运行登录时,使用不同的用户名进行登录

在这里插入图片描述

在这里插入图片描述

3、监控性能指标

监控性能指标

  • 系统指标:响应时间、吞吐量、错误率、并发数
    • 聚合报告
      在这里插入图片描述
      在这里插入图片描述
  • 资源指标:CPU、内存、磁盘、网络
    • PerfMon
      在这里插入图片描述

4、模拟并发

模拟并发

  • 如果系统之前进行过性能测试,直接模拟TPS20的场景,进行性能测试,并监控指标

  • 如果系统之前未进行过性能测试,安装负载测试的原则,逐步增加负载量,观察性能的指标—采用该方法。

  • 执行

    • 模拟5个用户并发,观察吞吐量TPS和响应时间
      在这里插入图片描述
  • 结果分析:
    • 用例要求登录TPS为20,要求响应时间不超过3s
    • 实际执行登录TPS为20.3(达到要求),实际执行的响应时间为244ms(达到要求),因此用例通过。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

补充:

  • 当前用例测试时CPU利用率为98%,内存利用率为85.62%,超出正常的范围
    • 如果在公司进行性能测试时,该用例不能算通过,因为资源使用率也是一个重要指标
    • 在课上由于虚拟机资源不足,暂时不关注资源使用率
      (814032/995684)*100%=81.75%,由此可以看到虚拟机在什么都不干的情况下也被占用了81.75%的内存
      在这里插入图片描述
      在这里插入图片描述

进入首页脚本:

进入首页脚本

模拟5个并发:

  • 实际TPS未达到要求TPS100,实际响应时间(1)未超过要求实际5s,无法证明是否存在BUG,需要进一步增加负载量。
    在这里插入图片描述

模拟30个用户并发:

实际TPS未达到要求TPS100,实际响应时间(10s)未超过要求实际5s,说明用例测试不通过,需 要提交bug
在这里插入图片描述

添加购物车-查看购物车-商品结算-下订单-查看订单脚本;
加入购物车脚本:

1、数据准备工作:

(1)修改待添加的商品库存为足够大,避免在性能测试过程中把商品库存耗尽导致脚本失败
update litemall_goods_product set number='1000000000' where id=2;
在这里插入图片描述

2、脚本修改:
(1)可以使用随机用户登录,并添加购物车吗?
如果单独的一个接口可以用随机数random;但是如果要和其他的接口配合就使用计数器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、运行并分析结果

模拟5个用户并发:

  • 实际TPS41.9达到要求TPS20,实际响应时间59ms未超过要求响应时间3S,用例测试通过
    在这里插入图片描述

结算并下订单脚本:

结算并下订单脚本

修改测试脚本:

  • 设置计数器
    在这里插入图片描述
  • 修改HTTP请求登录:
    在这里插入图片描述
  • 修改HTTP请求下订单:
    在这里插入图片描述
    在这里插入图片描述

执行测试脚本:

  • 模拟5个用户并发

  • 实际TPS为29.5达到要求TPS10,实际响应时间为19ms(不超过要求3s),用例测试通过
    在这里插入图片描述

业务流程的测试:

业务流程的测试

步骤:

  • 准备测试数据
  • 修改脚本
    • 添加事务控制器,并把所有的脚本放入到事务控制器中
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

注意:

  • 在进行业务流程的脚本性能测试时前提必须保证该业务流程中所有的单接口性能测试结果都达标

稳定性测试:

稳定性测试:

  • 稳定性用例设计:
  • 确定出稳定运行的所有业务操作:(同时运行)
  • 根据运营数据,分析出每个业务操作对应的虚拟用户数
    在这里插入图片描述

稳定性测试执行:

  • 所有的脚本同时执行(解除前后依赖)
  • 每个脚本都是一个事务/业务—事务控制器
  • 按照要求设置虚拟用户数和运行时间
  • 执行稳定性测试监控
    在这里插入图片描述
    在这里插入图片描述

补充:

  • 如果单个接口/业务流程还存在性能bug,需要再修复性能bug,再进行稳定性测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值