性能测试是不是只要学习LR就可以了?软件性能测试我需要具备什么样专业知识
性能测试是不是只要学习LR就可以了?还需要学习其他什么知识?目前性能测试的工具好像就是那么几种,但是,只会用工具就是性能测试了吗,其他还需要什么能力呢?
这个问题我想回答①下
第①个问题:性能测试是不是只要学习LR就可以了?
按LZ的表述来说提到了LR、那么应该是指包含了脚本生成、负载测试与测试数据收集这类集合的性能测试工具。
单纯从性能测试工具来说、就有下面这些软件可以学习、并非只有LR①种。
先说下商业软件
QA Load:Compuware公司的QALoad是客户/服务器系统、企业资源配置(ERP)和电子商务应用的自动化负载测试工具。QALoad是QACenter性能版的①部分,它通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能。QACenter汇集完整的跨企业的自动测试产品,专为提高软件质量而设计。QACenter可以在整个开发生命周期、跨越多种平台、自动执行测试任务。
SilkPerformer:①种在工业领域最高级的企业级负载测试工具。它可以模仿成千上万的用户在多协议和多计算的环境下工作。不管企业电子商务应用的规模大小及其复杂性,通过SilkPerformer,均可以在部署前预测它的性能。可视的用户化界面、实时的性能监控和强大的管理报告可以帮助我们迅速的解决问题,例如加快产品投入市场的时间,通过最小的测试周期保证系统的可靠性,优化性能和确保应用的可扩充性。
LoadRunner:①种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的确认和查找问题。此外,LoadRunner 能支持最宽范的协议和技术,为您的特殊环境,量身定做地提供解决方案。
WebRunner:是RadView公司推出的①个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能,用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。
IBM Rational Performance Tester(简称 RPT)也是①款性能测试工具,适用于基于 Web 的应用程序的性能和可靠性测试。Rational Performance Tester 将易用性与深入分析功能相结合,从而简化了测试创建、负载生成和数据收集,以帮助确保应用程序具有支持数以千计并发用户并稳定运行的性能。
还有①些开源的软件
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。
AutoBench 是①款基于httperf的Perl脚本。它会在①次测试中调用多次httperf来对web服务器进行测试,每次会按照给定的参数增加并发连接数,将 httperf的测试结果保存为CSV格式的文件,该文件可以被Excel直接读取,方便生成测试报告。借助于autobench自带的 bench②graph工具可以生成漂亮的测试结果对比图。
ApacheBench 工具程式(ab)是 Apache 网站伺服器软体的①个附带的工具软体,专门用来执行网站伺服器的运行效能,特别是针对 Apache 网站伺服器 的效能分析。这支程式原本是用来检测 Apache 网站伺服器(Web Server) 所能够提供的效能,特别是可以看出 Apache 网站伺服器能提供每秒能送出多少网页,当然的,也可以用在任何其他的网站伺服器 Apache ab的全称是ApacheBench,是 Apache 附带的①个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求。
curl-loader(也被称为“omes-NIK”和“davilka”)是①个开源的C语言编写的工具,模拟应用负载和成千上万的几⑩万人的HTTP / HTTPS和FTP/ FTPS的客户端应用程序的行为,每个有其自己的源IP地址。相反,其他curl-loader使用真正的C编写的客户端协议栈,即libcurl和TLS/ openssl的SSL的HTTP和FTP协议栈,支持登录和验证口味和模拟用户行为的工具。
Iago 是①个网站负载测试工具,Iago 针对①个给定的网站进行访问录制并合成流量数据。它不同于其他的负载生成工具,它试图保持恒定的请求率。例如如果你想按每分钟①⓪⓪K来请求您的服务,Iago 会试图保持这个速度进行测试。
Pylot 是①款开源的用以测试 Web Service性能和扩展性的工具,它运行HTTP负载测试,这对于制定容量计划、确定基准点、分析系统瓶颈以及系统调优都非常有用。在使用过程 中,Pylot会发起并发请求(HTTP Requests),检验服务器响应,以及带有相关指标的报表。它通过GUI或者Shell/Console来执行和监视对被测试网站的测试过程。
第②个问题:还需要学习其他什么知识?
第③个问题:其他还需要什么能力呢?
其实第②个问题和第③个问题、总结起来应该算①个问题、要做好性能测试需要有哪些知识储备?
做⑤年的测试生涯中、也就用过几次Apache的AB和LR。
① · 需要对硬件有①定的认识;
你需要对CPU、MEM、I/O、Disk等等都有①定认识、不管你是C/S还是B/S架构的软件、最终都需要运行在这些硬件上面、很多时候吧普通机械硬盘换成SSD之后你才知道瓶颈原来在I/O上
② · 需要对操作系统有比较深入的了解;
这点应该不会有什么疑问、你所有的应用都是跑在操作系统上的、不管是linux还是windows、你都需要了解很多才行。如果你对LR足够熟悉你会发现LR的数据来源都是从操作系统获取的、所以你可以不用LR、自己从操作系统获取到这些数据、比如windows的\"perfmon\"能获取到所有的LR能提供的性能数据、磁盘IO、网络性能、CPU、内存、网络、甚至是字节大小你都可以得到、linux下可以用uptime、vmstat、top、iostat、free、ulimit等等工具。
③ · 数据库;
如果你的程序涉及到数据库、那么不要忘记多学习数据库知识、我这几年做的项目都不用数据库、导致数据库方面的暂知识都还给老师了。
④ · 对自己所测试程序足够了解;
你必须要非常清楚的了解你自己要测试的程序业务流程、你操作程序的每①个动作都要知道是哪①个exe或者是哪①个模块负责的。
⑤ · 对性能测试有必要的认识;
性能测试真正的意义在于通过性能测试得到的数据、图表来分析确定性能瓶颈的点在哪里,
比如:(我最近的①个项目中有①个功能需要拷贝文件、但是我测试下来发现我们程序拷贝文件比我通过操作系统的cp拷贝慢了接近⑥⓪%、后来让开发换成用操作系统的提供API来拷贝就解决了)
如果你能找到发现程序的性能瓶颈点、谁管你是用LR 还是AB、甚至直接在服务器上用perfmon输出数据来分析(我就常用perfmon)。
PS:①不小心写得有点多、以上都是自己的①点见解、如果写得不好请多包涵。
我们可以探讨探讨测试相关的东西。
看题主的描述,没有具体说是哪类的软件,什么样的性能测试。
①般来说用,有现成的工具的,要求低点。需要自己开发的,要求就高些。
例如loadrunner,不需要代码和数据库相关知识,只要懂得录制和回放,就能开始。
如果是JMeter,那就需要代码相关知识了。
测试人员多少要懂些代码,不管现在的工作有没有要求,自己学①些总是好事。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息