大白-性能测试平台

如何快速进行性能测试(极速版)

极速版让用户能够快速进行性能测试,针对单事务、单接口的性能测试。

step.1  点击【新建测试】-【极速版】

极速版第一步

step.2  进入任务添加页面,填写接口请求内容。点击【校验】能够对填写的url进行连通性验证并返回接口相应内容。 监控服务器框内如果填写需要系统自动监控的服务器名称。

极速版第二步

点击 ,可以对请求和运行进行设置。

运行设置可以设置并发用户数和运行方式,分为按时间和按次数执行。

请求添加参数、Header。

检查点对请求返回值做验证,判断请求正确性。包含关系,即接口返回值包含所填内容即为成功,否则失败。

监控可以在压测过程中对你填写的服务器进行自动收集资源数据,在结果页以曲线形式展现出来。目前只能填写服务器名称,IP无效。

Host对请求进行host配置。

极速版第二步

step.3  点击【执行】,系统会进行环境验证并开始测试。

极速版第三步

step.4  点击【查看结果】进入测试结果列表页,点击【查看详情】进入结果页面。

极速版第四步
大白-性能测试平台

如何模拟业务场景测试?(高级版)

高级版可以模拟业务场景,进行混合场景测试,使测试结果更准确。提供参数化、检查点、关联功能

step.1  点击【新建测试】-【高级版】

高级版第一步

step.2  进入创建脚本页,填写脚本名,定义事务,填写请求url内容。

高级版第二步

step.3  点击【下一步】,进入创建场景页。系统会自动关联上一步提交的脚本。选择施压模式,填写并发用户数。

高级版第三步

选择施压模式,分为常规模式和梯度模式。

常规模式,填写并发用户数,即可。

高级版第三步
大白-性能测试平台

测试结果分析

点击【查看详情】进入测试结果详细页,分为概要、详情、监控、日志。

1.  概要,主要展示了任务的概要信息。包块状态、运行时间、压测集群、错误信息、性能数据平均值等。

2.  详情, 可以查看事务的详细性能数据以及性能走势,辅助分析业务性能情况。包括TPS、响应时间、吞吐量。

3.  监控,可以查看系统自动监控的施压服务器和用户填写的被测服务器系统资源,包括CPU、内存、磁盘、网卡、负载。

4.  日志,可以查看系统运行的日志。

大白-性能测试平台

如何参数化?

参数化功能只有高级版可以使用,进入创建脚本页,点击【选择文件】,上传参数文件,支持txt和csv格式。

文件格式见下:

a,b,c
1,2,3
4,5,6
7,8,9

第一列参数名,用逗号分隔,第二列开始为对应的参数值,系统会顺序循环选择参数值替换请求中的变量。请求url中需要用参数文件中的值替换的变量格式为:${参数名}

例如:http://xx.xx.xx.xx/index.php?a=${a}&b=${b}

参数a的值分别取1,4,7

参数b的值分别取2,5,8

大白-性能测试平台

如何做关联?

高级版提供了关联功能,来满足模拟具有上下文关联的业务流程,具体操作见下:

进入创建脚本页,点击【高级属性】,关联tab页点击【添加】,定义变量名称,将请求返回内容中左边界、右边界中间的部分赋值给变量。 然后使用${变量}格式来获取。

例如:

第一个请求返回内容为{"code":1001,"emg":"OK","id":"4567"},将1001赋值给变量code,那么就把1001的左、右边界填写到表格; 如果要将OK赋值给变量emg,那么就把OK的左、右边界填写到表格。分别作为下面两个请求a和b的参数值。即下面两个请求为:

http://test.qihoo.net/hh.php?a=1001

http://test.qihoo.net/hh.php?b=OK

如下图:

大白-性能测试平台

如何混合场景?

高级版中提供混合场景的功能,来模拟线上用户操作场景。具体操作见下:

首先进入创建脚本页,将不同的用户场景分别定义单独的事务,创建场景页中会列出所有定义的事务,然后对各个事务分配用户比例,来模拟混合场景。

大白-性能测试平台

检查点?

检查点功能是校验返回内容是否符合预期。只要返回值中包含输入的内容,就返回true,否则false。

大白-性能测试平台

分数是如何计算的?

指标 分项总分 好(80-100%) 中(60-80%) 差(0-60%)
响应时间 35 10ms-1s 1s-3s 3s-10s
TPS 35 1000-10000 200-1000 10-200
服务器系统资源(CPU) 10 1%-80% 80%-90% 90%-100%
并发用户数 10 200-1000 50-200 1-50
失败事务数百分比 10 99%-100% 98%-99% 95-98%
大白-性能测试平台

了解性能测试

(一) 什么是性能测试?

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

(二) 目的是什么?

目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

包括以下几个方面:

1. 评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

2. 识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

3. 系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

4. 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

5. 验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

(三) 性能测试类型?

1. 并发测试

并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在隐藏的并发问题, 如内存泄漏、线程锁、资源争用问题。

特点:

• 主要目的是发现系统中可能隐藏的并发访问时的问题。
• 主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。
• 这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持。
• 测试关注点是多个用户同时(并发)对一个模块或操作进行加压。

2. 负载测试

通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

特点:

• 主要目的是找到系统中所存在的性能问题
• 需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力和典型场景、使得测试结果具有业务上的意义。
• 一般用来了解系统的性能容量,或是配合性能调优来使用。

3. 压力测试

模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。

特点:

• 主要目的是检查系统处于压力性能下时,应用的表现。
• 一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。
• 一般用于测试系统的稳定性。
• 让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。

4. 稳定性测试

在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。

特点:

• 这种性能测试方法的主要目的是验证是否支持长期稳定的运行。
• 这种性能测试方法需要在压力下持续一段时间的运行(2~3天)。
• 测试过程中需要关注系统的运行状况。
•也就是说,这种测试的关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。

(四) 测试指标

1. 事务(Transactions) 事务是用户某一步或几步操作的集合。

2. 每秒处理事务(TPS,Transaction Per Second) 每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。

3. 事务平均响应时间(Average Transaction Response Time) 每一事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。

• 最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。
• 最少响应时间(Mini Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最少时间。
• 90%响应时间(90% Response Time) 指90%的用户发出请求或者指令到系统做出反应(响应)的平均时间。

4. 并发用户数(the number of concurrent users ) 在同一时刻与服务器进行了交互的在线用户数量。

5. 最大并发数(Maximum number of concurrent users) 指同时登录站点的最大人数或者服务器同时接收下载的最大数量。

6. HTTP错误率(HTTP error rate) 在选定时间段内,HTTP错误数量与请求数量的比率。

7. 吞吐率(Throughput) 是场景运行过程中服务器每秒的吞吐量。其度量单位是字节,表示每个请求连接在任何给定的每一秒从服务器获得的数据量。

8. CPU(Central Processing Unit) 中央处理器,是计算机的重要设备之一。功能主要是解释计算机指令以及处理计算机软件中的数据。 CPU利用率(CPU Usage) CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间/CPU总的执行时间。

9. 内存(Memory) 也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。 内存使用率(Memory usage) 内存占用率指的是此进程所开销的内存。

10. 磁盘使用率(Disk usage) 磁盘的读写包速率。

11. 网卡(Network input/ output) 网卡的进出带宽,包量。