51Testing软件测试论坛

标题: 业务多流程J2EE眶架的动态数据用例的自动获取和按一定规则分配用户问题 [打印本页]

作者: billrub    时间: 2005-6-5 01:58
标题: 业务多流程J2EE眶架的动态数据用例的自动获取和按一定规则分配用户问题
HI:ALL

     环境因素:
           多流程业务系统,典型的J2EE架构三层系统,举例:3流程 A——B——C,A流程实现最初采集数据,B流程则完全需依据A流程获得相关业务和技术主键,而C则完全依据B流程,以此类推,在业务系统中存在十几层的流程深度。

     测试欲达效果:
           200用户并发,数据流量10万,选择了其中的11个业务流程,反复次数按流程分配,其中2个流程为最初的数据采集流程外其他流程都需要一一承接,测试业务各流程的事务响应性能,寻找系统性能瓶颈;后续流程已经有部分缓冲数据用例,但更多的用例需要由前一流程产生;
      
      测试疑难:
            1、采用参数化实现方式无法在运行过程中实时动态取得数据用例;     
            2、取得适量数据用例后是否可达到如下效果:
                 例:一个Param取得20条数据,不论是“新的用户”还是“用户反复”均在这20条中按顺序取值,20条取完并均完成事务,Param重新执行SQL取得新数据用例;
             呵呵,由于刚采用LR,因此对其函数库很不熟悉,不知以上所述是否能实现,请教高手!

[ Last edited by billrub on 2005-6-5 at 02:08 ]
作者: kernzhang    时间: 2005-6-5 13:19
关于问题1:
首先如果数据值能从服务器端反馈到client,那么脚本就可以获得实时数据,(这就是所谓的关联)
我对你的流程不是很清楚!我做一个假设,有A,B,C三个流程,因此做了3个脚本(?)
当A这个流程向服务器端提交了一个“123456”这个数据,第二个流程想实时的将“123456”这个值作为参数放到脚本中去执行,但是因为不是同一个脚本,所以无法实时得将值传递到下个脚本!
(我的假设是你问的第一个问题的意思吗?)
如果3个流程在同一个脚本中只是分到不同的action,我假设的问题将不存在,在A这个流程中的数据可以传入B流程中
如果在不同的脚本,我们就想办法借一个中间产物来放这个参数值,然后再B流程去获取,最简单的方法,保存到文件中,在B流程中去取这个文件的参数,或者保存到数据库等等(这些都是LR自身无法完成的,需要自己在LR中做一些开发,为了结果时间的准确性,你应该将这些操作时间在LR中去掉)
问题2:
LR虽然提供了通过SQL在数据库中取值,但是这是一次性动作,无法做到实时的在数据库中取值,如果要达到你的想法,只能自身做一些开发!
作者: billrub    时间: 2005-6-5 15:41
非常感谢kernzhang版主的指点,指点很清晰,也很有效;前面的问题也可迎刃而解,只是对函数库的需要一些查找时间。

不过我还有其中一点问题想请教一下:LR是否支持所有用户共享一个全局的Param,对使用此Param的“每一用户”,及“每一用户的反复”都在同一个Param中按顺序取得唯一的值?还是需要自己定义一个全局数组变量达到这种效果,呵呵,要是LR的Param已经封装好这些特性将可以省去我很多麻烦。
作者: kernzhang    时间: 2005-6-5 15:59
全局的概念是在LR7.5.1之前的概念!
比如说你在一个脚本中设置了一个参数 A,A的参数值放在一个数据文件中,你如果定义取参数的顺序为:sequential,那么每个user都是从参数的第一行开始取参数(当然除非你设置不是从第一行取)
这个全局事针对一个脚本内的!多个脚本的话除非你都让Vuser取同一个参数文件!呵呵!
作者: billrub    时间: 2005-6-5 19:58
那就是说采用同一脚本的每个用户取得的数据用例都是相同的吗?
我想达到的效果是每个用户取到的数据都是不同的,因为一旦并发用户取到相同的值就只有第一个可以成功提交,后面的用户将全失败。比如:Param中的“1”数据被A用户取的,那么其他用户以及“A用户反复”均不再采用此数据。
作者: kernzhang    时间: 2005-6-5 21:40
那你将select next row设置为unique就行了!它是表示每次去不同的值,不会重复!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2