jackey422 发表于 2019-10-22 12:51:23

性能测试工具选择策略--仿真度对比测评分析报告

性能测试工具选择策略--仿真度对比测评分析报告
作者王家可
手机:17710924305
微信:wangjiake000

评审
审批
修改订录
日期版本号描述作者
2019-10-201.0完成初步的仿真度对比分析报告
王家可
2019-10-211.1增加仿真度的重要性章节
王家可
2019-10-221.2修正kylinTOP工具版本号及章节编号等
王家可


1.概述
本文宗旨是选择几款性能测试工具进行仿真度对比测试,以此来帮助软件测试人员在工作中正确的选择一款性能测试工具。
性能测试工具比较多,限于作者时间有限,不能对每一款性能测试工具一一测试,计划挑三款性能测试工具相互对比测试。选择策略是:挑选国内一款,国外二款(商用和开源免费各选择一款)
   国内的性能测试工具中拥有完全自主知识产权的只有深圳市奇林软件有限公司旗下的kylinPET(C/S)、KylinTOP(B/S)两个版本,这里我们只挑选B/S版本作为测试对象。
   国外的性能测试工具我们挑选国内最常用两款: LoadRunner(美国HP公司商用)、Jemeter(美国Apache软件基金会开源免费)作为测试对象。
   性能测试工具一般支持的协议都非常多,不可能对每一种协议都做仿真度测评。国内常用的协议主要是HTTP协议,因此文本主要针对HTTP协议的仿真度进行测评。
      文本所有通过wireShark抓包文件分析获得的瀑布图,在附录中均附有抓包文件及过程分析数据。

2.浏览器并发能力分析
在向浏览器地址栏输入一个URL地址回车时,浏览器呈现在我们眼前的是一个完整的页面。页面中有很多的元素(如:文字链接、按钮、输入框、图片等),这些元素都是浏览器从服务端获取的数据。浏览器获得这些元素按并行方式获取的(通过并行的HTTP请求获得),每个浏览器并行获取的能力也是不同的,详见下表:

浏览器并发数
HTTP / 1.1HTTP / 1.0
IE 1166
IE 1066
IE 91010
IE 866
IE 6,724
火狐66
Safari 3,444
Chrome 4+66
注:浏览器的并发能力引用:HTTPs://www.cnblogs.com/sunsky303/p/8862128.html
文章中提到的注册表中的:MaxConnectionsPerServer(HTTP 1.1)和
MaxConnectionsPer1_0Server(HTTP 1.0)配置项,作者使用的是wind10,自带ie11浏览器,其中MaxConnectionsPerServer=10,但是浏览的并发量并没有增加到10,仍为6。

3.仿真度的重要性
性能测试工具的工作流程:录制脚本-新建测试计划(新建测试场景)-执行测试计划-分析测试结果。工作原理就:启动一个线程循环执行录制脚本,相当于仿真一个真实用户在线不停的循环操作。那么这个用户的仿真度就与执行脚本的方式具有强相关性。执行方式与浏览行为越接近,那么它的仿真度越高。性能测试工具的新建测试计划(场景)步骤可以选择的属性有:运行时间或迭代次数、并发用户数以及用户新增或下降方式等。其中运“行时间或迭代次数”和并发用户数是性能测试过程中的两个重要的属性特征。用于测试服务器在指定的时间段内可承受的最大并发用户数。直接反应服务器性能指标的参数是:HTTP请求数/秒、吞吐量(Mb/秒),但是这两个属性不能按业务层面反应服务器的性能,如:最大并发用户数是一个业务层面的性能指标。因为业务不同,浏览器的并发请求数和请求时序不同,且对应的HTTP类型也不同。有些HTTP的请求是比较消耗资源的,尤其是对业务复杂处理的HTTP请求。性能测试工具的仿真度的高低,直接体现了性能测试工具对真实业务的仿真,包括HTTP请求并量、并发时序,业务类型等。仿真度越高测试结果获得的数据越可信。如下图所示,每一个用户就代表一个线程,每一个线程就是对录制脚本的循环执行。下图中的每一个方格就代表对录制脚本的一次完整执行。红框标志出某一刻服务器承受的所有并发用户数,它所承的HTTP并发请求总数等于每一个方格此时此刻的HTTP并发数总和,用公式表达就是:服务器承受的HTTP并发总数=(1-2用户HTTP请求并发数)+(2-2用户HTTP请求并发数)+……+(m-2用户HTTP请求并发数)。从这个表达式可以看出,服务器承受的HTTP并发总数与每一个方式格的并发数相关,即录制脚本运行的并发数。如果性能测试工具按照脚本HTTP请求,顺序执行HTTP请求(最不理想的情况),那么它的并发总数就是:m,如果按浏览器的最大并发数运行,它的并发总数就是:6m(浏览器一般可以最大并发6个),相差5倍。在服务器承受的HTTP并发能力一定的情况下,脚本运行的并数,决定了并发用户数。那么如何才能体现真实的并发用户数呢,只有在性能测试工具执行脚本的HTTP请求时,HTTP并发数、时序完全与浏览器完全相同时,才能最能真实的反映出服务器承受的最大并发用户数。


Miss_love 发表于 2020-12-25 15:13:12

看看
页: [1]
查看完整版本: 性能测试工具选择策略--仿真度对比测评分析报告