性能测试总结

一、性能测试

1.0为什么要进行性能测试?

    1.评估当前系统的能力

    2.寻找性能瓶颈,优化系统性能

    3.评估 软件是否满足未来需求

1.1什么是性能测试?

    时间:系统处理用户请求的响应时间

    资源:系统运行中,对资源的消耗

1.2性能测试是什么?

    通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项西性能指标进行测试。

1.3功能和性能测试

    1.不同:

        功能测试验证系统的功能需求规格、聚焦功能。

        性能测试验证系统业务性需求场景,聚焦时间内和资源。                

    2.关系:

        功能测试通过后,后进行性能测试。

1.4性能测试的分类

1.4.1:基准测试

    建立基准线,当系统软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。

1.4.2负载测试

逐步增加系统负载,满足性能指标情况下,找出系统的最大承受能力。

作用:系统最大负载量达到用户要求时,系统才能正式上线使用。

注意:

    1.通过负载测试,可以确定系统的最大负载量和极限负载量

    2.系统对外宣称的最大负载量

    3.负载测试的时间一般为1-2小时

1.4.3稳定性测试

系统各项指标都正常的情况下,进行长时间的测试(1天—至一周),并且没有出现问题,满足用户长时间运行该系统。

1.4.4压力测试

1.在强负载下的测试,查看系统在峰值下是否功能隐患、系统是否具有良好的容错能力和可恢复的能力。

2.场景

    1.高负载下的长时间稳定性压力测试

    2.极限负载下的破坏性压力测试

1.4.5并发测试

    在极短的时间内,处理大量请求来验证系统的并发处理能力。

    场景:抢红包、秒杀。

并发测试与负载测试的区别:

    负载测试:主要目的是测试高负载情况下,对系统资源的消耗,是否会耗尽的问题。

并发测试:主要目的是测试极短时间内,并发请求时,系统资源争抢的问题。

1.5 性能测试的指标

1.5.1 响应时间

指从客户端发起请求开始,到客户端接收到结果的总时间

包括:服务器处理时间 + 网络传输时间

1.5.2 并发用户数

某一时刻同时向服务器发送请求的用户数

1.5.3 吞吐量(Throughout)

1.概念:单位时间内处理客户端的请求数量,直接体现软件系统能能承载能力。

吞吐量单位分类

1.5.4 QPS

QPS(Query Per Second)每秒查询数,即控制服务器每秒处理的指定请求的数量。

1.5.5 TPS

TPS(Transaction Per Second)每秒事务数,即控制服务器每秒处理事务请求的数量。

如:支付请求事务=查询用户余额请求+校验支付安全请求+发送支付请求

1.5.6 点击数

所有的页面元素(如:图片、链接、框架等)的请求总数

注意:点击数是请求数,不是页面上的一次点击

1.5.7 错误率

指系统在负载情况下,失败业务的概率

注意:

错误率是性能指标,是高负载下的失败业务的概率

随机bug是功能bug,先解决随机bug才能进行性能测试

1.5.8 资源利用率

概念:系统各种资源的使用情况,率=资源使用量/总资源可用量x100%

常见资源指标

CPU使用率:不高于75%-85%

内存大小使用率:不高于80%

磁盘IO(速率):不高于90%

网路(速率):不高于80%

Jmeter

1.jmeter的作用

        1.接口测试 面试说postman,因为方便好用。

        2.性能测试 jmeter,也可以用postman(runner),但是没有性能指标

        3.数据库测试

2.线程组是什么?

        概念:性质相同的线程放在一个组内

        线程组包含线程数、准备时长、循环次数

        1.线程数:虚拟用户数

        2.准备时长:启动所有用户的时间

        3.循环次数:每个线程发送请求的次数

3.jmeter主要组件

        1.测试计划

        2.线程组:性质相同的一组线程(线程数、准备时间、循环次数)

        3.采样器:HTTP

        协议、主机地址、端口号(选填)、请求方法、路径、编码格式(选填)、参数

        4.监听器:采集测试结构

            察看结果树、用表格查看、聚合报告

        5.循环控制器

        6.事务控制器

            事务:多个操作组合

            作用:

        7.固定定时器

                作用:控制两个采样器的间隔

        8.断言

                1.Json断言:判断某个key对应某个value

                2.响应断言:响应中包含某个串

        9.前置处理器和后置处理器

4.参数化

        1.用户自定义变量:

                作用:提供全局变量,方便修改

                使用:配置元件 → 用户定义的变量 → key value → ${key}

        2.CSV data set config

                配置文件:

                添加元件:CSV data set config → 选中文件 → 编码 → 字段1,字段2

                在采样器界面:添加参数 → 调用${字段名称}

         3.CSV函数小助手

                  工具  → 函数小助手 → 选择CSV Read → 复制文件路径 → 字段编号 → 生成 → 自动复制,过去粘贴

5.接口依赖

        正则语法:* + ? . ()

        实现:

            ①添加HTTP请求,使用正则提取一个需要字段

            ②在第一个HTTP请求里边调用字段${字段}

6. jmeter脚本录制和压测

1.什么是脚本录制

在进行测试的时候,可能有好多脚本或者界面需要操作测试,并且有些测试链接需要重复多线程高并发进行测试,我们一般会针对这一些操作,进行一个脚本录制,录制好之后,之后测试就可以在这个基础上进行测试。

2.脚本录制方式

    web端:badboy脚本录制

    app端:使用Jmeter自带的代理服务器进行脚本录制

3.Android手机端脚本录制

    1.同网

    2.添加http代理服务器

    3.在线程中添加录制控制器

    4.在http代理服务器中指定录制脚本的路径,默认端口8888

    5.查看本地的ip

    6.设置移动端代理,IP和端口号

    7.启动

    8.打开手机app,抓取接口

4.web端脚本录制

安装badboy脚本软件→打开badboy软件→使用

7.Jmeter压测

一.数据库压测

    1.为什么要紧行数据库压测

        不断给数据库施加压力,验证数据库处理的性能

    2.如何进行数据库压测

        1.jdbc配置:创建线程组→添加配置元件JDBC Connection Configuration→对数据库连接的配置进行设置→添加jdbc Request请求→运行

select statement:只支持单条查询,只支持第一条数据查询

updata statement:修改数据

Callable Statement:支持查询、修改、支持多个查询

Prepared Select Statement:类型必须为varchar**结合csv配置数据

2.jmeter对服务器压测(windows)

      资源准备:  JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目录下

    操作:打开server的监听→添加监听器-jp@gc - PerfMon Metrics Collector→添加性能指标,线程组设置线程数和时间

     2.jmeter对服务器压测(linux)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容

  • 第五单元、性能测试 1.什么是性能测试 通过自动化的测试工具模拟系统正常、异常、峰值的场景对系统的各项性能...
    小董小董阅读 376评论 0 0
  • 一.性能测试 1 .性能:时间:系统处理用户请求的响应时间 资源:系统运行过程中,系统资源的消耗情况 ...
    ZhaoyiMing阅读 266评论 0 0
  • 本文主要介绍下性能测试的基本流程,性能测试从实际执行层面来看,测试的过程一般分为这么几个阶段,如下图: 下面分别介...
    James黄杰阅读 1,565评论 0 22
  • 本篇文章主要简单总结下性能测试工具的原理以及如何选型。性能测试和功能测试不同,性能测试的执行是基本功能的重复和并发...
    James黄杰阅读 840评论 1 10
  • 一、 数据库压测1. 为什么要进行数据库压测 不断给数据库施加压力,验证数据库处理的性能2. 如何进行数据库压测 ...
    老友_9e40阅读 199评论 0 0