让你提前认识软件开发(42):性能測试
第3部分 软件研发工作总结
性能測试
【文章摘要】
对于通信领域的某些中间模块,其主要功能是对收到的消息进行处理然后发送,在两个模块之间充当了一个“桥梁”的作用。因为消息的条数有多有少,这就对其性能提出了要求。
本文结合作者的实际项目经验,描写叙述了性能測试的整个过程,并对性能測试过程中的一些常见问题进行了简单的介绍。
1. 前言
在完毕项目新需求的编码之后,对代码进行自測以验证功能的正确性是在所难免的。一般说来,花在測试上面的时间要很多其他一些。通过对自己所编敲代码的具体測试,开发者能够发现设计上、编码上的不足,及时对程序进行改动,降低了兴许改动所带来的成本的添加�。
某些中间模块位于两个重要模块之间,充当了“桥梁”的作用。它须要对收到的消息进行处理,并将处理之后的消息发送出去。消息的条数有多有少,当消息条数非常大时,就要求中间模块能够有比較高的性能,不会因为处理只是来而瘫痪掉。因此,对中间模块进行性能測试以验证其处理大量消息的能力是非常有必要的。
本文对性能測试的整个过程进行了具体的描写叙述,并对測试过程中的一些注意事项进行了简单的介绍。
2. 性能測试环境的搭建
2.1 系统结构示意图
一般而言,对于要处理大量消息的系统,都须要进行性能測试。其通用的系统结构如图1所看到的。
图1 性能測试系统结构图
如图1所看到的,中间模块C须要与模块A和模块B进行消息的交互。首先由模块A发送消息到中间模块C,中间模块C依照协议组装好消息后,发送到模块B;模块B收到消息之后,会给中间模块C返回应答消息,中间模块C再依照协议组装应答消息返回给模块A。
由此可见,中间模块C须要处理不同的消息,当消息量非常大的时候,就对其处理性能提出了要求。
2.2 模拟程序的编写
从图1能够看出,要对中间模块C进行性能測试,须要模拟模块A和模块B的功能。
为了方便操作,一般在自己的工作PC上编写模拟程序来完毕简单的性能測试。假设要想进行大规模的性能測试,须要专门的測试人员和測试环境的配合。
一般而言,能够编写可视化的操作界面来模拟模块A和模块B,这样方便对消息进行跟踪和调试。模拟界面的示意图如图2所看到的。
图2 模拟界面示意图
如图2所看到的,整个操作界面比較简单,包含“開始測试”button、“退出系统”button、消息类别button、“发送次数”控制框、“发送间隔”控制框和显示框等。
“開始測试”button用于控制測试的開始。
“退出系统”button用于控制測试的结束。
消息类别button用于控制发送消息的内容。在系统建立起来之后,当选中当中的某项功能并点击“開始測试”button之后,模块A就会将消息发送到中间模块C,并接收来自中间模块C的消息。发送和接收的消息会显示在中间的显示框中。
“发送次数”控制框用于控制消息的发送条数,这是性能測试最重要的体现。对于某一类消息,能够逐渐添加�该项的取值。
“发送间隔”控制框用于控制消息的发送间隔。这是为了方便观察到每条消息的发送情况,可依据实际情况进行调节。
显示框用于展示消息的执行情况,方便跟踪与调试。
在模拟模块A和模块B程序中,最为重要的是要严格依照协议来组装发送的消息,不仅要保证字段内容和顺序的正确性,还要保证格式的正确性。为了确保发送消息的准确无误,能够添加�一个配置文件,在该文件里将消息配置好。
3. 性能測试的操作过程
性能測试操作过程与程序实际的測试过程没有什么两样。在測试之前,要保证系统的正常执行、要保证相关配置文件内容的正确性,并确保測试软件的正确性。
3.1 启动模拟界面
模拟程序成功启动后的界面如图3所看到的。
图3 模拟程序成功启动后的界面示意图
3.2 对单条消息进行測试
选择某一个消息类别,并设置“发送次数”为1,能够看到发送消息和接收消息的情况,如图4所看到的。
图4 发送1条消息成功示意图
通过图4的显示框能够验证程序的功能是否正确。
3.3 对中间模块C进行性能測试
编写模拟程序的一个主要目的就是要对中间模块C进行性能測试,也就是要不间断地向中间模块C发送多条消息,看一下其功能是否正常。
比如,选择某类消息,并设置“发送次数”为10000,能够看到发送消息和接收消息的情况,如图5所看到的。
图5 发送10000条消息成功示意图
图5中,模拟程序不停地向中间模块C发送消息,直到发送10000条为止。当消息发送完之后,能够查看中间模块C处理消息是否正常,也就是看性能測试是否达到预期的目的。
一般说来,要保证中间模块C能够承受100000次乃至1000000次以上的性能測试。当某一项功能的性能測试通过之后,还要对该中间模块C涉及到的其他功能进行性能測试,以确保其性能的稳健性。
4. 性能測试常见问题及其解答
在性能測试过程中,常见的问题及解答例如以下:
1) 为什么模拟程序无法发送消息?
答:出现这样的情况,一般都是配置的问题。在进行性能測试之前,一定要确保各配置文件的正确性,要确保server和client配置的正确性,以及连接port的准确性。连接不通,一般都是由port号不正确引起的。
2) 为什么发送过来的消息解析不正确?
答:这通常是因为未依照协议的要求组装消息引起的。
3) 为什么对于有些功能,处理少数几条消息的时候不会有什么问题,而多条消息时程序就会崩溃?
答:肯定是中间模块C程序有问题,性能測试的目的就是为了发现这类问题。能够对比相关日志文件来检查,看程序在哪里崩溃的。一般说来,通过检查相应的代码能够发现问题之所在。
5. 总结
本文主要介绍了对中间模块C进行性能測试的整个过程,并对測试过程中的常见问题进行了描写叙述。
性能測试的主要目的是保证代码的质量,进而确保产品的质量。开发者在编写完代码之后,一定要对代码进行充分的測试,以降低兴许改动所带来的麻烦。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)