本系列文章对性能测试中容易混淆的概念,方法进行总结。作为性能测试进阶版本,本文假设使用者已经会使用各种仪表,不会对基本配置进行描述。

基本概念

HTTP Test Scenario

对下框中HTTP协议的,keep alive等的说明:

建议直接查看思博伦Avalanche的帮助,已经总结得非常完备。不建议查看网上的文档,因为大多数网上的文档并没有彻底搞清楚这几个值的设置,对测试的影响关系,容易越看越晕,不如直接看帮助,一次弄懂。

Conections和simusers的区别和联系

这两个都是测试并发的。Conections和simusers的关系,可以理解为,一个完整的action列表,就是一个simuser。这个actions里面有多少个连接,就对应多少个connections。例如:

Latency和think time的差别

假设配置的latency或者think time的时间为60sLatency =60s是服务器会等待60s的时间,再发送200 ok报文Think time=60s 是服务器发送了200 ok后,客户端等待60s再拆掉这个连接

Piggback Get Request是什么意思

设置为piggback get request时,tcp三次握手的第三个报文(即ack报文),可以同时进行数据的传输。

User based 和global profile是什么意思

User based 方式,可以给不同的association配置不同的profile,如下图所示:

而global profile只能使用使用一个profile:

在使用场景上,User based 方式多用于现网模型,可以给不同的流量配置不同的load形状和不同的负载量。

需要特别注意的是,使用User based 方式,测试只能选择simusers或者是simusers/sec,不能选择connection或者connection/sec等而使用global profile可以使用simusers、 simusers/sec, connection和connection/sec等。

Avalanche上如何抓包

配置方式如下图所示:

Avalanche client端如何判定是否为successful

Client端判定方式就是收到200 ok

如何确认测试结果

问题1:Monitor里面的结果到底是什么意思,能否直接通过monitor的结果来确定当前的新建还是并发?

答:不可以。Client端的Attempted是累积的tcp的连接值。Server端的Open,per second是实时的。如下图所示:

由于avalanche在建立连接的时候,可以边拆边建,所以attempted的值,并不等同于当前系统正建立的并发。而是系统在测试时间一共建立的多少连接。以上图的例子为例,attempted 802,444个连接,是指client端已经累计发起了802,444个连接。而当前服务器正在建立的连接是516,806(open)个,其中有284,440是已经关闭掉了的连接(closed with rest),当前的新建值为5163(per second)。

问题2:应该如何确认测试结果?

测试结果要同时满足下面两条:

Run-time stats里面,查看对应的TCP新建或者并发(下图中蓝色的线和黄色的线),是否达到期望的结果。如果是http业务,可以同时查看http transitions和response time。

还需要保证monitor里面的的unsuccessful结果为0。

问题3:Server的closed with error是否是判定结果成功的标准?

Avalanche是4-7层,基于应用的测试。从应用(也就是业务)的角度,可以认为client端成功,client端需要的数据就获取到了,业务传输的目的就达到了。而server端的closed with error是服务器这边的连接出现问题。可以理解为传输层面的问题。所以closed with error可以不作为判定最终结果是否成功的标准,但是是重要的参考项。一般来说,如果在并发中,用think time的方式测试,存在closed with error,用latency的方式,一般客户端就会出现大量失败。

Avalanche上如何根据报告来分析问题

也可以通过avalanche上的result报告来分析当前的问题。对复杂流量来说,通过result报告来分析会特别有帮助。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

软件系统安全测试和性能测试的区别,【安全测试】性能测试进阶——基本概念篇...相关推荐

  1. 什么是接口测试,和性能测试有什么区别,测试步骤有哪些?

    一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...

  2. tcp接口测试工具_【转载】接口测试和性能测试的区别

    一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...

  3. 接口测试和性能测试的区别

    一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...

  4. 软件测试的定义、目的、原则、对象、测试与调试的区别

    1. 软件测试的定义   软件测试是指有特定的目的.有方法的,并且需要提交缺陷-跟踪解决的一个过程.其目的在于检验软件是否满足或弄清预期结果与实际结果之间的差别.即为了发现程序中的错误而使用热工或自动 ...

  5. 性能测试,负载测试,压力测试以及容量测试的联系与区别--网搜及总结

    1.负载测试,英文是Load testing. 负载测试是性能测试的一种,测试一个应用在重负荷下的表现.例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系 ...

  6. alphac测试和bata测试区别_康一康!接口测试与性能测试的区别瞧过来~

    点击上方蓝字  关注我们前言 最近我在一个论坛上看到了一个关于性能测试和接口测试的经典问题,问题如下: 问题:后端性能测试,一个功能其实都是由后台多个接口组成的. 例如一个单据的保存,可能后台需要调用 ...

  7. 负载测试、压力测试和性能测试的区别

    负载测试(Load testing).压力测试(Stress Test,应称为强度测试)和性能测试,这三个概念常常引起混淆,难以区分,从而造成不正确的理解和错误的使用. 负载测试.压力测试和性能测试的 ...

  8. 性能测试,压力测试, 负载测试,稳定性测试的定义和区别

    性能测试压力变化模型 随着单位时间流量的不断增长,被测系统的压力不断增大,服务器资源会不断被消耗, TPS 值会因为这些因素而发生变化,而且符合一定的规律.淘宝网性能测试压力变化模型如 图中: a 点 ...

  9. 移动app测试的多样性_app移动端接口性能测试

    13. APP测试和WEB测试有什么区别? 1. 从技术上来说: * 测试类型 :WEB测试有功能测试.性能测试.安全性测试.GUI测试. APP测试除了有WEB测试的类型还增加专项测试,特性测试,适 ...

最新文章

  1. linux 内核编译详解
  2. 选择开源项目的时候,哪些因素是最需要考量的?
  3. 001 Servlet 介绍
  4. bubble气泡特效
  5. Redis 主从复制(replication)
  6. 为EasyUI 的Tab 标签添加右键菜单
  7. PHP 开启或关闭错误提示
  8. impdp导入dmp文件ORA-39088: 文件名不能包含路径说明ORA-39001: 参数值无效ORA-39000: 转储文件说明错误
  9. spyder中绘图无法显示负号_Python绘图--时序图
  10. 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码
  11. html+css+js 实现鼠标拖尾效果(源码)
  12. 计算机二级考试办公软件高级应用题型,计算机二级考试题型
  13. Javascript程序运行环境安装
  14. Studio 3T for MogoDB调整字体大小
  15. 【Arduino】VC0706(中星微串口摄像头)
  16. 苹果4S恢复模式 一直正在等待iphone解决办法
  17. 正点原子的串口助手XCOM V2.0编码问题
  18. RAKsmart:查询在线服务器的方法
  19. 借助 Play Commerce 实现购买优化、灵活订阅和收入增长
  20. Atomikos 中文说明文档(周枫翻译)

热门文章

  1. 神州八号利用计算机,说到科技,我想大部分的人想到的是神州八号
  2. yml文件tab 空格_YAML 文件介绍
  3. z-blog php 静态设置,Nginx的Z-Blog的伪静态配置方法
  4. 魔兽世界终端服务器,《魔兽世界》怀旧服数据已上传服务器:登录画面引人怀念...
  5. js中定义用字符串拼接起来的变量名的变量
  6. Recyclerview单选和多选
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的贷款审批系统
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的驾校预约信息管理系统
  9. JAVA基础系列:Object类
  10. 英特尔“硬盘内存一体化”首款产品正式发布,读写速度超千倍,存储密度扩充十倍...