关于事务( transaction )这个概念我最早是在做应用层测试的时候接触的,那个是时候知道还在应用 HTTP1.0 ,在 HTTP1.0" name="description" />

关于事务(transaction)

发表于:2008-07-30来源:作者:点击数: 标签:transaction事务
MI LY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于事务( transaction )这个概念我最早是在做应用层测试的时候接触的,那个是时候知道还在应用 HTTP1.0 ,在 HTTP1.0

MILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于事务(transaction)这个概念我最早是在做应用层测试的时候接触的,那个是时候知道还在应用HTTP1.0,在HTTP1.0中如果不设置Active的情况下,每个connection(链接)上只能跑一个Transanction,那个时候接触这个概念,是指的HTTP的这种请求,比如HTTPGet或者HTTPpost等,应用测试仪表Avalanche&Relflector;那么具体这个事务是什么概念呢,我们可以看一下RFC3511《防火墙性能测试基本方法》这个文档,在这个文档中有一个测试的指标要求测试Maximum HTTP Transaction Rate即最大HTTP传输速率,考察防火墙设备能够支持的应用层处理的能力。在这里要求的协议是HTTP1.0或者HTTP1.1;他指的是每秒处理的HTTP的请求数,但是这个过程是在TCP三次握手以后开始执行HTTP Get或者Post的请求。所以说这里的事务指的是HTTP层,或者说应用层上的请求处理情况。

后来在Chariot网络战车)这个工具上也看到了这个概念,他的吞吐量测试过程中,首先通过TCP层建立连接,然后再TCP层上传输文件,在这个工具上称这个传输文件的过程为Transaction;然后计算在单位时间可以传输多少个Mb的文件。从而计算出吞吐量。

再后来用到Load RunnerMercury公司的一款性能测试的产品,这个时候看到在脚本中可以直接插入用户定义的事务,将事务插入到脚本中,可以参考我的一篇文章:http://blog.csdn.net/Test_sunny/archive/ 2008/07/29/2734224.aspx。我们来看一下LR中对于事务的描述:“要度量服务器的性能,需要定义事务。事务代表您要度量的一个操作或一组操作。在 Vuser 脚本中,可以通过嵌入适当的 start end 事务语句脚本段来定义事务。”

因此在LoadRunner 中事务就是一组函数,事务本身没有一个特定的意义,这一组函数是:lr_start_transaction("test");lr_end_transaction("test", LR_AUTO);这一组函数必须同时出现,如果出现其中一个,比如只有开始函数lr_start_transaction("test");没有lr_end_transaction("test", LR_AUTO);函数系统运行后会报错:Error: Vuser started transaction "test", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.同样的如果只有结束事务没有开始的事务函数报以下错误:Error: Failed to end Transaction "test" (by name). Please check that you made a call to start transaction operation.

跟事务相关的几个指标:

1)  TPS 每秒钟事务处理数,是指单位时间对于特定事务来说能够处理的个数;

2)  Response time 响应时间,这个也是根据不同事务统计的一个时间,是指完整这个事务所花费的时间。

    总结:在不同的工具中对于事务(transaction)的概念不是完全一样的,在LoadRunner中用户可以根据自己的要求来定义事务包含的内容,可以是一个交易也可以包含几个交易,同时对于事务可以对应相应得几个指标,比如TPS、事务平均响应时间等等。

原文转自:http://www.ltesting.net