性能测试流程

1. 性能测试需求分析
2. 性能测试计划及方案
3. 性能测试用例
4. 搭建测试环境
5. 测试数据准备
6. 测试脚本编写
7. 执行测试脚本
8. 性能测试监控
9. 性能分析和调优
10. 性能测试回归
11. 性能测试报告总结

1、性能测试需求分析

熟悉被测系统

        熟悉系统的业务功能以及数据流向
        熟悉系统的技术架构

明确性能测试范围

        从业务角度,挑选核心业务进行测试以及生产环境访问量多的业务
        从技术角度,挑选逻辑复杂度高、数据量大的业务进行测试

明确配置信息

        明确性能测试环境的CPU、内存、网络、磁盘、实例等配置详情,以及与生产环境的资源配置的差异性;

确定测试策略

◼ 基准测试
◼ 单交易负载测试
◼ 混合场景测试
◼ 高可用性测试
◼ 异常场景测试
◼ 稳定性测试
◼ 其他特殊场景

确定性能测试指标

        有需求:按照需求来测试                     
                例如:
                        新建线索业务并发20个用户
                        平均响应时间要小于等于3s
                        事务成功率为100%
                        CPU、内存使用率小于等于80%
        没有需求:同类型软件对比,对未来数据进行预估;如果公司有运营数据统计,可以根据运营数据对性能测试的指标进行估算;

明确上线时间

需要明确上线的时间,编写性能测试方案,合理安排性能测试的人员与执行计划,确保能按时上线;

2.性能测试计划及方案

每个公司都有自己的模板,大体上的性能测试方案的内容上出入不到,包含以下内容;

1 、项目背景 —— 主要介绍下项目的背景
2、测试目的 —— 验证被测系统在高并发下的处理能力、响应能力,稳定性等,能否满足预期。
3 、测试范围 —— 对于需求分析中的性能测试内容
4 、测试策略 —— 对应于需求分析中的测试策略
5 、风险控制 —— 技术风险、人力风险
6 、环境信息  ——压测的环境与生产环境的资源情况
7 、进度和分工 —— 谁在什么时候做什么事

3. 性能测试用例

4. 搭建测试环境

  • 测试机器硬件配置尽量和线上一致
  • 系统版本与线上一致
  • 测试环境部署线上最小单元模块
  • 应用、中间件、数据库配置要与线上一致
  • 其他特殊配置

测试环境的搭建,需要了解首先了解项目的架构,是使用LNMP,还是JAVA、C#等,不同的架构方式的部署,后面有时间出一些文章进行项目部署的内容;

通常,我们在搭建集成测试环境之时,会使用Jenkins与docker搭建流水线,开发只需要在gitlab上发起合并请求给测试,测试合并之后,jenkins就会就行编译、打包、部署;

5. 测试数据准备

方式(造数的详细方法,后面会出教程)

1、通过使用Jmeter,调用实际业务接口进行造数;

例如:我们可以模拟实际用户操作页面的操作,调用相应的接口;

2、通过使用Jmeter,进行对表进行增删改查操作,达到造数;

3、使用存储过程造数

使用存储过程造数,一般都是适合表数据量比较少,简单,优点就是快;

4、使用脚本造数,可以使用python/java等语言,编写造数脚本;

python,封装mysql

import pymysqlclass MysqlUtil:# 初始化__conn = None__cursor = None# 创建连接@classmethoddef __get_conn(cls):if cls.__conn is None:cls.__conn = pymysql.connect(host="数据库",port=端口,user="用户名",password="密码",database="数据库")return cls.__conn# 获取游标@classmethoddef __get_cursor(cls):if cls.__cursor is None:cls.__cursor = cls.__get_conn().cursor()return cls.__cursor# 执行sql@classmethoddef exe_sql(cls, sql):try:# 获取游标对象cursor = cls.__get_cursor()# 调用游标对象的execute方法,执行sqlcursor.execute(sql)#  如果是查询if sql.split()[0].lower() == "select":# 返回所有数据return cursor.fetchall()#  否则:else:# 提交事务cls.__conn.commit()# 返回受影响的行数return cursor.rowcountexcept Exception as e:# 事务回滚cls.__conn.rollback()# 打印异常信息print(e)finally:# 关闭游标cls.__close_cursor()# 关闭连接cls.__close_conn()# 关闭游标@classmethoddef __close_cursor(cls):if cls.__cursor:cls.__cursor.close()cls.__cursor = None# 关闭连接@classmethoddef __close_conn(cls):if cls.__conn:cls.__conn.close()cls.__conn = None

封装后,只需要引用上封装好的包,编辑SQL即可;

from tools.mysql_util import MysqlUtila=MysqlUtil.exe_sql("select * from tb_board")
print(a)

6. 测试脚本编写

◼ 选择工具(Loadrunner、Jmeter、Locust等)
◼ 选择协议(Http、TCP、RPC)
◼ 参数化
◼ 关联
◼ 检查点
◼ 事务判断

7. 执行测试脚本

说明:先保证脚本调试通过之后,才能进入正式压测阶段
执行测试脚本时,要先进行性能运行场景的设置,再运行脚本

8.性能测试监控

性能监控就是监控服务器的各项性能指标。例如:监控CPU、内存、网络、TPS、磁盘IO等

9. 性能分析和调优

说明:性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈。
提示:
  调优人员 ( 开发人员、数据库管理员、系统管理员、网络管理员、性能测试分析人员 ) 相关人员对系统进行调整;

10. 性能测试回归

验证 - 性能测试人员继续进行回归 测试,与以前的测试结果进行对比,从而确定经过调整以后系统的性能是否有提升,资源使用情况是否正常;
注意 :
系统调优由易到难的先后顺序如下:
1. 硬件问题
2. 网络问题
3. 应用服务器、数据库等配置问题
4. 源代码、数据库脚本问题
5. 系统构架问题

11.性能测试报告总结

  • 概述
  • 测试环境
  • 结果与分析
  • 调优说明
  • 项目时间表
  • 结论
  • 建议

性能测试流程-性能测试2相关推荐

  1. 性能测试流程_流性能

    性能测试流程 当我阅读Angelika Langer的Java性能教程时-Java 8流有多快? 我简直不敢相信,对于一个特定的操作,它们花费的时间比循环要长15倍. 流媒体性能真的会那么糟糕吗? 我 ...

  2. 性能测试流程-各阶段的工作

    1        性能测试流程 1.1      性能测试计划阶段 测试计划阶段主要工作如下: 1.明确测试对象 2.定义测试目标 3.定义测试通过的标准 4.规划测试进度 5.规划测试参与人员(需求 ...

  3. 【性能测试】性能测试的基本流程

    转发自博客园贺满:https://www.cnblogs.com/puresoul/p/5463477.html,有删减. 本文主要介绍下性能测试的基本流程,性能测试从实际执行层面来看,测试的过程一般 ...

  4. 浅描工作环境电脑维护以及性能测试流程

    浅描工作环境电脑维护以及性能测试流程 2011年09月03日 人生如同一本书,是一本难以折叠又难以合并的旅程课本.也许有的人根本无法享受其中的乐趣就由衷而散,也许有的人享受到讨厌其中的奥妙,而我们呢? ...

  5. 面试必问的性能测试流程,你真的会吗?

    本文主要介绍下性能测试的基本流程,性能测试从实际执行层面来看,测试的过程一般分为这么几个阶段,如下图: 下面分别介绍下每个阶段具体需要做什么: 一.性能需求分析: 性能需求分析是整个性能测试工作开展的 ...

  6. JMeter性能测试流程及性能指标关注点

    性能测试流程 平常我们做黑盒测试,都会有一套功能测试流程,做性能测试也不例外,性能也会有规范的流程.如下图所示就是我们常规的性能测试流程图. .1.业务学习:通过查看文档,手工操作系统来了解系统功能. ...

  7. Jmeter性能测试【应用场景、性能测试流程、搭建测试环境】

    目录 一.性能测试的概念 二.性能测试类型 三.性能测试应用场景(领域) 四.性能测试常用的指标 五.性能测试流程 六.搭建测试环境 七.测试用例设计和脚本开发 八.测试数据准备 九.性能测试执行和管 ...

  8. 软件性能测试有哪些功能点,软件性能测试流程规范说明

    软件性能测试流程规范说明 发表于:2011-01-14来源:作者:点击数: 标签:软件 软件性能测试流程规范说明 文档控制 Date Version Description Author 2006-4 ...

  9. 什么是性能测试?为什么要进行性能测试?什么时候开展性能测试?性能测试流程是什么?性能测试有关术语是什么意思?

    前言 本文文章读起来过于枯燥,但是你用15-20分钟认真读一下,获取会为你理解性能测试有所帮助.其中有些是借鉴网上的一些大神的经验. 性能测试5问: 什么是性能测试? 性能测试是指被测系统在一点负载下 ...

最新文章

  1. 浏览器缓存和webpack缓存配置
  2. matlab读取格式重复,matlab - 为什么Xlsread以字符串形式读取(日期时间) - 堆栈内存溢出...
  3. MySQL中如何通过修改表实现约束的添加与删除
  4. 工作流activity_开源、强大的工作流引擎:camunda入门介绍
  5. 《软件建模技术》课程教学大纲
  6. LeetCode刷题(34)-Rotate List
  7. markdown与latex:如何写出具有数学符号意味的ln3\ln
  8. 想找一些外文文献,有哪些靠谱的外文文献网站推荐?
  9. PADS PCB绘图软件使用过程中遇到的问题和填坑
  10. gege.fans上热搜背后是明星私域流量的折射
  11. 组件上传之AspUpload使用方法
  12. 柯洁将在年内和“阿尔法狗”进行终极人机大战
  13. sql盲注特点_sql盲注
  14. RedHat认证介绍
  15. 重学JS(《JavaScript高级程序设计》笔记) - HTML中的JS
  16. ERP与MBA的关系
  17. 学计算机前后对比的图片,大学生“修图前后”对比照,差距一目了然,男生帅气女生惊艳...
  18. 米拓模板:财务公司网站模板推荐
  19. 服务器统一计算系统,思科统一计算系统(UCS)
  20. DataBase First 基础(四) 删除或修改表时失败,因为相同类型的其他实体已具有相同的主键值***

热门文章

  1. linux桌面文件夹路径是什么,【已解决】Ubuntu中右键(桌面和文件夹)打开终端(定位到当前路径)...
  2. @Scheduled注解详解
  3. RepeatMasker的安装与使用(一)
  4. C/C++ fstream
  5. vue3的自定义指令directives
  6. 串的定长顺序存储结构|C++实现
  7. 数据结构排序-7-3 点赞狂魔 (25 分)
  8. 电商小程序实战教程-商品详情页开发
  9. pycharm配置可视化界面流程简介
  10. 使用伪类来实现类似微信群聊的头像样式