# 性能测试流程（四）——测试工具选型




根据对系统性能测试点的分析，我们选择合适的工作。不是所有的性能需求都要用LoadRunner或Jmeter来进行的。只要能满足需求就可以了，我个人倾向于轻量级的性能工具，或自己动手写代码。

#### 测试工具的比较：

软件性能测试工具分为三类，商业收费工具、开源免费工具、自主开发工具。

表：

| --        | 商业工具       | 开源工具  |  自研工具 |
| ------------- |:----------| :-----| :-------|
| 优点      | 功能强大且简单易用；提供丰富的功能，支持更多协议和并发用户数，丰富的计数器和测试结果；自动生成脚本，学习成本较低；很强的稳定性和可靠性。 | 轻量灵活容易扩展；可免费下载使用，可查看工具源代码，根须需求容易扩展。 |  贴近需求，开发出更适合需求的工具，较开源工具学习成本低。可形成特有的工具体系。|
| 缺点      | 依赖工具本身提供的功能，较难扩展。 工具体积大，购买成本高。     |  学习成本高，不能完全满足性能测试需求，需要功能扩展。功能相对比较简陋。 | 工具开发成本高，需要专业的工具开发人员或团队，工具成本也会存在不确定。|



通过上面的比较分析，很难判别对某类工具的取舍，各自有其明显的优势，当然也有明显的缺点，如何更好选择工具，这里就要结合实际性能的需求了。


#### 需要考虑以下几个方面:

* 性能需求：

首先要考虑的是否满足性能需求，例如系统的协议不支持，无法创建脚本，系统的模拟用户数达不到，或都某此特殊功能无法测试，如流媒体性能测试等。一些有性能工具是无法满足这些需求的，那当然要首先排除。

* 购买成本

对于商业工具的购买成本也是我们需要考虑的问题，其实，这个问题也是老板需要考虑的问题，对性能测试成本的整体预算等。当然了，在满足性能需求的前提下，当然一切从简。正版LoadRunner的服务费用非常的高。
那么开源软件呢？ 开源的性能测试工具其实非常的多，因为它们都分别适合在不同的需求场景下，所以，它们的体积相比商业软件会小很大，当然功能也相对简陋。但是他们在某些情况下可以完全满足某些性能需求，或者可以通过几款开源工具配合满足，或者通过对开源工具进行扩展进行满足。对开源工具进行扩展，对测试人员的要求较高。需要测试人员对工具的原理及源代码有相当有研究。这里对测试人员自动能力的提升非常有帮助。
或者你的性能测试项目特殊，找遍市面上的所有性能工具无一款满意，商业定制成本过高。或者你想构建自己有工具体系。处于公司需求的特殊性与长期性考虑，可以自主开发一个性能测试工具来用。一次开发，永久收益（当然也需要维护与升级、扩展等），而且更贴近自已的需求。目前很多知名的大公司都有自己的性能测试工具，用于内部使用。 

* 人员学习成本：

最后要提到的就是人员对工具的学习成本，其实，测试人员在选择性能测试工具时最先考虑的就是从自己会使用的工具入手，这样可以最低的控制学习成生，如果整一个工具，测试人员单学测试脚本就学了半年，老板早让你走人了。这也是对性能测试人员要求较高的地方。所以，对于性能测试人员，你最好熟悉一款流程的商业性能工具，一款开源免费性能具，还需要熟悉常见的性能脚本开发语言等，这是基本要求。




原始封面

![课程图片](https://images.unsplash.com/photo-1529664084480-627210605cc7?w=300)


