广东腾创技术服务有限公司_腾创实验室-软件测试报告-信息化项目验收测试-软件产品登记测试-软件安全测试报告-第三方软件测试机构

软件测试:性能测试工具介绍

性能测试是重要的软件测试类型之一,有助于确定应用程序在工作负载下的性能,比如响应能力、可扩展性、可靠性、速度和稳定性等。性能测试对发现错误毫无帮助,但可以消除性能瓶颈,并改善整个应用程序的性能。

1、有助于评估软件的稳定性

2、确保在开发生命周期的早期阶段发现性能缺陷

3、帮助团队了解应用程序在正常负载下如何运行

4、确保找出差异并消除差异

5、帮助验证应用程序的功能特性

目前,市面上流行的进行性能测试使用的工具主要有Jmeter、Xmeter、LoadRunner等,测试人员通常通过监控系统的吞吐量、响应时间、事务成功率、应用服务器和数据服务器的CPU和内存等指标来衡量系统的性能是否达标。

性能测试之常用工具介绍

LoadRunner

LoadRunner可划分为如下四个部分:

1.虚拟用户生成器(VuGen):捕捉用户业务流程,用于录制和生成性能测试脚本;

HammerDB

Hammerdb作为一个开源的数据库压力和基准测试工具,有图形用户界面和命令行两种形式。支持标准的TPC-C和TPC-H两种测试模型。TPC-C测试模拟了一个批发商的仓储管理环境,由TPC(Transaction Processing Performance Council)事务处理性能委员会提出,TPC是一个非营利性组织,成员包括大多数数据库产品厂商及服务器硬件供应商。该组织定义了一系列数据库基准,规范了数据库在事务处理性能方面的评测标准和测评结果,是目前业界公认的评测数据库性能的主流国际标准之一。

SwingBench

SwingBench是基于JAVA开发的Oracle数据库性能基准测试工具,是免费软件。SwingBench生成负载来进行数据库测试,最后生成相关的响应时间、事务数等测试结果图表,有三种前端:SwingBench、CharBench、MiniBench,其中CharBench是命令行模式。

SwingBench包含6个基准测试程序:OrderEntry、SalesHistory、CallingCircle、

StressTest等,可以模拟OLTP的应用场景:

1.OrderEntry:进行订单查询、处理、下单等操作,主要用于少量表的测试;

2.SalesHistory:主要用于测试基于大表(从1GB到1TB)的复杂查询的性能;

3.CallingCircle(不推荐使用):模拟在线电信应用的SQL,所有的基准测试程序都是CPU密集型;4.StressTest:用于对已知表进行insert、update和select操作测

试。

此外,SwingBench还可以根据测试需求修改或新增相关的SQL来进行测试。

locust

locust是一个的简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试。locust使用python语言开发,测试资源消耗远远小于java语言开发的jmeter。且其支持分布式部署测试,能够轻松模拟百万级用户并发测试。

wrk

wrk是轻量化的http性能测试工具,采用线程+网络异步IO模型,网络异步IO可以使得系统使用很少的线程模拟大量的网络连接以增大并发量、提高压力。

wrk操作简单、易于使用,使用方式例如:./wrk -c 1000 -t 8 -d 10s http://www.baidu.com。主要包括以下参数:

-t(--thread) 需要模拟的线程数;-c(connection) 需要模拟的连接数;--timeout 超时的时间;-d(--duration) 测试的持续时间

AB(ApacheBench)

ApacheBench 是一个轻量级工具。主要用于 HTTP 协议的性能测试。非常简单快捷。不支持场景化测试。

ab是个小巧而简便容易上手的工具,但是没有图形化的界面,提供的也是基本的性能参数,不能监控,一般用于临时测试某个接口的效率。