模型的意义在于它化复杂为简单, 同时不丢失最关键的属性。 建立模型是为了帮助我们更好的理解一个复杂的事物。 那么问题是“性能测试很复杂吗?”, 接下来的问题是“如果说性能测试很复杂, 那么复杂性体现在什么地方?”
性能测试复杂吗? 一句很废话但是也是真话就是, 初看简单, 深入复杂。
我认为性能测试的复杂性体现在三个地方。 第一个是性能参数, 第二个是输入场景, 第三个是性能测试的目的。
性能测试的参数, 就是任何对系统性能有影响的参数。 比如不同硬件配置, 不同的应用服务器或者数据库服务器, 不同的系统的配置参数, 这些参数的变化都会影响最终系统的性能, 那么在搭建性能测试环境是, 到底如何对他们进行选择呢?选i5还是志强, 工作线程选5还是10?
输入场景是对于性能测试时输入的描述。 比如对一个电子商务网站的性能测试, 每一次成功的购物应该包含几个request, 分别是什么类型? 如果是大型打折活动, 用户的购物流程有什么变化?
性能测试的目的更是令人头疼。 在开始一次性能测试之前,对软件产品的相关角色做一个调查, 会发现你收集到的结果是五花八门。
l 客户: 我觉得某个页面反应很慢.
l 客户: 某一个通知邮件本来应该在5分钟内收到, 但是半个小时都没有收到
l 技术支持: 客户问该系统到底能支持多少用户?
l 技术支持: 客户问如果交易量提高50%, 需要购买什么样的硬件?
l Dev: 我希望性能测试能帮助我们找到系统的瓶颈.
l Dev: 我想优化性能, 但是我需要得到不同参数下系统的性能, 你能提供吗?
l 产品经理: 客户对我们的系统性能抱怨很大, 你能不能告诉我系统的性能到底如何?
l 产品经理: 新版本性能提高了多少?
作为性能测试项目的Owner, 你要考虑, 应该如何设计性能测试, 使得最少的测试能满足最多的要求?
建立性能测试模型可以帮助我们处理上面所涉及到的复杂性。帮助我们生成最有效率的性能测试案例。