写给程序员的JMeter教程(序):程序员需要掌握的能力

写给程序员的JMeter教程(序):程序员需要掌握的能力,第1张

我有一个观点,并且我认为这是无须详细去解释的,那就是:

每一个程序员,都得学会对自己的代码做性能测试

当然,性能测试的工具并不一定是JMeter,但以当前开源框架来说,我认为它是最好的选择。

从本周开始,在讲编码之道的同时,我将同时每周讲一篇技术,也就是编码之术。

做为一个优秀的程序员,道与术同等重要,不可偏废。

编码之术的第一个系列就是: 写给程序员的JMeter教程

要记住一个原则,性能只是技术价值中的一个维度,不要说业务价值,光是从技术价值上来考量,性能也并不是最重要的,甚至得排在很多点后面,比如可维护性

我一向认为: 可维护性是最重要的技术价值

因为性能是可以用硬件来弥补的,但可维护性差就不是弥补这么简单的事了,为可维护性付出的代价会远高于提升下硬件或在集群中多加个服务来解决性能问题的代价,硬件永远是越来越便宜的。

作为程陆蠢序员,一定要有这种认知。

当然,这不代表性能是可以轻视或者忽略的,关于如何对待性能这个技术点,我的观点是:

在不牺牲可维护性的前提下,努力做到性能最好

相比其它维度的测试工作,性能测试稍显尴尬。

性能这个事情,不理解技术,没有实际编码过,坦率地讲要做好并不容易。而理解编码或编码过的测试人员其实是少数。因此,仅有此部分的测试人员能够去做性能测试,而大多数测试人员在性能测试方面始终有点难以着手与深入。

好吧,大多数程序员可能并不认为性能测试是需要自己动手的一个事情。这显然并不是一个正确的认知。

我认为,程序员是非常有必要自己做性能测试的,它应该是一个程序员的必备技能之一。

有谁会比你更熟悉你自己编程的思路与实现?

程序员的自我性能测试应该是第一道防火墙,无论后面测试团队会如何进行性能测试,本身你自己要先给自己把这一关给过了先。

原因我认为有以下几点:

1. 专业性

其实无论是单元测试,还是性能测试,程序员理当自己去做这些事,自己写的代码自己要保障它的质量,这应该是专业性的一种体现。我们想做好一个程序员,那对专业性的追求就必不可少。

2. 发现隐蔽的错误

很多功能,如果不在大并发下运行,可能一切正常。但这并不意味着它就真的 正常 ,我们要明白我们的服务是在网上运行,它并不是一个人在使用。大并发下会出现非常多你意料不到的问题与Bug。

3. 自己最清楚自己的逻辑

别人测试你的代码,永远不如你自己清楚,你知道自己是怎么实现的,当然就更清楚在性能上如何测试它更好。

4. 这不是一件很难的事

其实技术整体发展方向是越来越易于使用,不断地有更好的工具出现。我要讲的JMeter就是一个足早改陪够简单且易于使用的工具,使用JMeter绝大部分情况下,只需要用图形界面就能搞定,极少数情况下才需要编写脚本。

5. 它更节省时间

好吧,我知道这听起来有点夸张或不可思议,很多人理所当然地会认为这会歼庆花费更多的时间。

其实这个点与单元测试是一样的,凡是认为单元测试或性能测试会延长编码时间的程序员,这些想法都属于想当然,他们可能从未尝试过。

实际上,你不做这些事,未来你会在其它方面为它付出更多的时间。而只有做这些事,才有可能保障代码的可维护性。

当然,现在我们都尽量使用开源的工具,因为很多开源的工具足够强大并且是免费的。

在性能测试领域,当然最专业的要属LoadRunner这个工具了,但显然这个太重了,还只支持Windows。

事实上,很多互联网公司主流都是使用了更轻,更易于使用的JMeter。

且不论JMeter和LoadRunner孰优孰劣,对于程序员来说,选择JMeter肯定是当下最正确的选择。

所以,从现在开始你可以跟随我的脚步来学习与使用JMeter吧。其实它足够简单,你并不需要花费太多的时间。

下一篇,写给程序员的JMeter教程(一):理解性能测试中的性能指标

1 JMeter环境变量配置

由于JMeter是纯JAVA程序,因此运行需要配置环境变量,JMeter主要使用CLASSPATH变量。

配置如下环境变量:

JAVA_HOME=D:\Program Files\Java\jdk1.7.0_55

CLASSPATH=.%JAVA_HOME%\jre\lib\ext

Path=%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

2 配置JDBC

2.1 环境变量配置

到网上下载数据库的JDBC,以Mysql为例,如:mysql-connector-java-5.1.26-bin.jar,将其放到Java的环境变量下,具体路径:D:\Program Files\Java\jdk1.7.0_55\jre\lib\ext,如下图:

2.2 JMeter加载配置

浏览添加具体的JDBC路径即可,如下图:

3 线程组

线程数:并发用户数

Ramp-Up Period(in second):加载并发用户的时间

循环次数:执行次数

3.1 添加数据库连接配置

Database URL:jdbc:mysql://IP:Port/database

JDBC Driver class:Mysql数据库,默认com.mysql.jdbc.Driver,不同数据库友脊有不同默认值纤携

3.2 添加数据库 *** 作

Query Type:选择 *** 作类型

文本框:填写 *** 作语句

4 监好竖渗听器

4.1 察看结果树

响应数据:SQL语句查询结果

4.2 聚合报告


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12410436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存