性能测试中如何选取被测对象的业务逻辑

很多搞性能测试的人员,只会跟着网上、前辈教导的方法进行测试:挑选业务逻辑中并发量、访问量最高的业务逻辑、结合读写等业务进行测试,然后取整条业务逻辑(模拟用户全流程动作)的逻辑进行测试;结果就是:准备大堆的测试数据,复杂的准备工作;其实那些数据只是用来满足业务流中的条件,而不是真的能产生压力的部分;

  笔者采用的方法:

  1、B/S结构中,用户操作功能流程其实是前端js依次调用不同的CGI接口,后台实现上面其实并没有强依赖关系(只要满足对应条件进行发包都能执行)。

  所以,首先挑选业务逻辑中用户访问最高的流程,然后从流程中挑选调用次数、压力最大的CGI接口;这样聚焦于对应的测试对象,可以避免很多无用的测试数据;

  2、根据业务逻辑,分析被测对象券流程中,所调用的接口,对于安全旁路、分支判断等,根据情况进行取舍(有些业务只测试某个CGI,有些是测试全平台,测试中根据情况进行聚焦)。

  3、根据分析情况直接修改被测对象代码:通常接口调用形式都会使用iret方式来判断,例如:


/*原有代码----begin*/

iret=xxx.call(args1,args2,args3);

if(iret != 0){

print("xxxxx");

break;

}

/*原有代码----end*/

iret=0 ---------- 添加iret=0,让程序继续走。

  这样不会影响外部接口调用次数,不会影响网络发包次数,但可能会影响单个网络包大小进而影响网络流量;同时稍微增加cpu负担(赋值造成内存读写)。但其实我们要测的是业务主流程,而不是外部接口(外部接口如果有需要可单独进行压测),所以笔者认为也是可以采取此种方案,而不需要准备一大堆无用的数据,只需有针对性的进行业务逻辑选取即可;

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-25 07:38:35

性能测试中如何选取被测对象的业务逻辑的相关文章

ASP.NET 2.0数据教程之二:创建一个业务逻辑层

本系列文章导航 ASP.NET 2.0数据教程之一:创建一个数据访问层 ASP.NET 2.0数据教程之二:创建一个业务逻辑层 ASP.NET 2.0数据教程之三:母板页和站点导航 ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据 ASP.NET 2.0数据教程之五:声明参数 ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值 ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表 ASP.NET 2.0

使用WEBLOGIC PORTAL规则引擎中实现动态业务逻辑

web|动态 简介 业务应用的需求总是随着业务环境的变化趋势而不断地改变.决策很少是一成不变的,并且竞争压力要求业务逻辑的设计和实现具有灵活性,以快速地适应不断变化的需求.通常,对业务逻辑的更改必须由开发人员来完成,然后进行多次彻底的测试,而这将是一个很耗时的过程.在应用程序的修改工作完成后,需要将其重新部署到服务器,需要留出预定的停机时间,以防应用程序对用户不可用. 对于这个问题,更好的解决方案是通过应用程序之外的一组规则来实现某些业务决策.这些规则并没有被编译到应用程序中,而是在运行时读取并

用适配器模式处理复杂的UITableView中cell的业务逻辑

用适配器模式处理复杂的UITableView中cell的业务逻辑 适配器是用来隔离数据源对cell布局影响而使用的,cell只接受适配器的数据,而不会与外部数据源进行交互. 源码: ModelCell.h 与 ModelCell.m // // ModelCell.h // Adapter // // Created by XianMingYou on 15/2/10. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #im

在ASP.NET 2.0中操作数据之二:创建一个业务逻辑层_自学过程

导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是授权,比如说只有那些具有特殊

三层架构中业务逻辑层的实现方式有哪些

问题描述 如题,比如说webservice,最好是应用程序和网页都能调用的接口 解决方案 解决方案二:BLL层一般都是继承接口实现,使用接口可以扩展业务逻辑.解决方案三:引用1楼duanzi_peng的回复: BLL层一般都是继承接口实现,使用接口可以扩展业务逻辑. 我就是想问接口的实现技术有哪些解决方案四:目前比较流行的是wcf解决方案五:所谓"业务逻辑",就是你的业务所需要处理的逻辑呀!虽然数据的增删改查也是业务,但一般直接放在数据访问层实现.举个例子,你用三层来实现登录的话,判断

ASP.NET2.0数据操作之创建业务逻辑层

asp.net|创建|数据 导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是

使用Drools规则引擎实现业务逻辑

简介:使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展 性成本.这篇更新的文章展示如何使用开源的 Drools规则引擎让 Java 应用程序更适应变化. Drools 项目引入了一个新的本地规则表达式语言和一个 Eclipse 插件,使Drools 比以前更容易使用. 要求施加在当今软件产品上的大多数复杂性是行为和功能方面的,从而导致组件实现具有复杂的业务 逻辑.实现 J2EE 或 J2SE 应用程序中业务逻辑最常见的方法是编写 Java 代码来实现需求文档的规

数据库系统优化:业务逻辑设计优化

当我们优化一个系统时,有时发现一种情况就是自己修改SQL,索引以及分区是不能解决性能问题的.这时你要考虑业务逻辑优化和表设计的重构.这两点的确和设计结合的很紧密. 业务逻辑优化 结合实际,我们先谈谈业务逻辑优化. 案例一: 我们的系统一个文档模块,客户点击时很慢,通过性能分析,是点击是去查询数据库,这时系统是通过Hibernate来两步处理: 1,计算该类型的文档数量总数. 2,显示最新文档的前20篇文档. 这时显示第二步的时间是很快的,只取20条记录,但是计算该类型的所有总数很慢.系统的这时的

《解剖PetShop》系列之五:PetShop之业务逻辑层设计

业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,我们也将业务逻辑层称为领域层.例如Martin Fowler在<Patterns of Enterprise Application Architecture>一书中,将整个架构分为三个主要的层:表示层.领域层和数据源层.作为领域驱动设计的先驱Eric Evans