51Testing软件测试论坛
标题:
两个测试人员的分歧--用lr的人进
[打印本页]
作者:
suchboy
时间:
2006-2-21 13:03
标题:
两个测试人员的分歧--用lr的人进
前一段时间测了一个C/S/S结构的信息管理系统,是一个公司的商业保险用的, 用的是PB写的客户端程序,
Weblogic做Appserver,Oracle的数据库服务器
它有一个 “基本信息管理”模块,可以查询到本系统登记的所有单位信息, 单位下的个人信息。这个模块可以做基本信息的增删查改。
这个模块是数据的入口。
它的主要业务是“计算缴费金额”:单位以及单位下个人参加了 商业保险,然后按照合同,每个月或每个季度缴纳保险金。
系统根据单位、个人基本信息,合同信息,计算单位、个人该缴纳多少钱。
这个业务给系统的造成主要负荷在于计算量庞大:每个月要计算所有单位以及所有个人要缴纳多少钱,然后写入到数据库里。
但这个业务不需要测并发。
另一个业务是“查询缴费金额”, 以参加保险的单位用户身份登陆的,
查看到本单位缴纳的总金额以及每个参加保险的人缴纳的金额(本月未缴以及历史已缴)
这个业务是要测并发的。在测试这个需要并发的模块时, 我和另一个测试人员在测试方法上发生了分歧:
---------------方法A---------------
如果单位下的人数多,计算量就大,客户端等待计算结果的时间就长。
系统计算一个100人的单位和计算一个10000人的单位下的缴费明细 ,时间是差很多的
测试的时候,以10并发为例子, 先选出10的倍数个单位(要有足够的数据量), 这些单位下都是100人, 然后10并发,不停的“查询缴费金额”
等lr上 “Trans Response Time 交易响应时间”的那个图中的线都不再有大的颠簸后,再读取其值,做为一组测试结果。
然后再选出10的倍数个单位(要有足够的数据量), 这些单位下都是500人......然后再选出1000个人的单位......
然后更换并发数,再从头做一遍,即并发数改为20,选出20的倍数个单位(要有足够的数据量), 这些单位下都是100人...
最后得到了下面的几组数据,
总数据量 并发数 单位人数 响应时间
--------------------
200万人 10 100 2秒
200万人 10 500 4秒
200万人 10 1000 7秒
--------------------
200万人 20 100 5秒
200万人 20 500 9秒
200万人 20 1000 15秒
--------------------
通过以上数据
可以得出固定规模数据量、不同并发数下,系统响应时间的值的区间
10并发: 2~7 秒
20并发: 5~15秒
以客户的需求来对比这个区间值,如果区间值大大满足了客户需求就算ok了,如果基本满足或不满足,就需要做调优了。
---------------方法B---------------
考虑到实际情况下,单位下的人数根本不可能那么的规范(全部是100人的、或500人的) 用方法A测出的值只能做为参考而不能做为结论
在对真实的数据进行统计后发现,很多的单位下都是100人左右,而较少的单位才会超过有200人,
取单位时,应该按百分比去取,以10并发为例, 用三个脚本,脚本1 取 8个单位,单位下人数在100人左右(80~120),脚本2 取1个
200~300人的单位,脚本3取1个 300~500人的单位,用 lr_start_transaction 对每个脚本对关键交易重新命名为X、Y、Z
接着在一个场景中, 脚本1 分配8个并发,脚本2、3 各一个,共10个并发,执行测试。10个虚拟用户每人只执行一次“查询缴费金额”
然后查看Analysis给出的测试结果,查看X、Y、Z交易的响应时间,做为一组测试结果。 这样重复做几次,取平均值,做为最后结果如下:
总数据量 并发数 处理速度
------------------------
100人左右平均需要2秒
200万人 10 200~300人左右平均需要3秒
300~500人左右平均需要4秒
------------------------
请问,这两种方法哪种比较科学?如果都错了,应该怎么做,谢谢~
[
本帖最后由 suchboy 于 2006-2-21 13:05 编辑
]
作者:
suchboy
时间:
2006-2-21 17:06
我的师傅给了我这样一个解释
方法A 如果执行了很久,就是测疲劳度了,看看机器会不会瘫了
方法B 比方法A更贴近实际,目的只是为了获得最优性能值,但测得的值不见得会跟方法A的差很远
总之,用lr测试,每次得到的结果都不可能完全相同,真正要去关注的应该是该软件而不是其他,
既然两种方法的目的不同,就不能再去想该选择哪个了。
作者:
suchboy
时间:
2006-2-21 18:24
标题:
关老师选B
http://www.testage.net/bbs/dispb ... ;ID=5157&page=1
-----------------------------
从场景选取的角度来说,我个人倾向方法 B。
性能测试要能够尽可能真实地模拟用户的情况,从这个角度来说,方法 B 显然更贴近实际的用户情形。
不过,对方法 B 我有一定的疑问:为什么方法 A 给出了 10 和 20 两种并发的情形,而方法 B 只给出了 10 一种并发的情形
--------------------------------------
作者:
sunshine_luo
时间:
2006-2-22 16:22
1。lz在方案B中可不可以用这样的方法:
在controller中选用面向目标的方式,用多个脚本,设置各自所占的Vuser的比例
设置目标:比如,要求系统响应的时间控制在4秒以内
然后由系统去添加Vuser用户的个数,直到达到你的测试目的
2。我觉得在方案B中lz还可以增加大数量单位的脚本,只是在设置其所占的比例的时候设置得偏小一点,这样就更加接近实际情况了。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2