LoadRunner进阶十问--1.客户经理和客户的测试数据设置?
看了很多问题,建议初学者还是多读读帮助,或者找一本书来读读,别总说市面上的书写的比较浅,其实这里面的很多问题,那些“浅”的书都涉及到,甚至是单独某个章节的讨论。我们不妨讨论一些和LoadRunner和性能测试相关的有趣问题,我在接下来的一段时间里,会陆续提出十个场景相关的问题,大家可以尽情的发表自己的见解,最后,如果不是特别冷清的话,我会在每个问题提交后的第五天说一下我个人认为比较好的解决方案和实际的操作,供大家参考。
今天放第一个问题。
你今天需要测试的是一个客户管理系统,每个客户经理都会管理一定数量的客户,选择的脚本是客户经理对客户进行修改/查询/删除,对客户的每个操作都需要客户ID(客户ID是唯一的)来进行,每个客户经理的客户是不同的,场景需要10个并发用户模拟10个客户经理。
大家可以考虑一下,如何准备测试数据,如何在LoadRunner中进行参数化设置。
不知道这种方式是否会得到响应,呵呵。
回复 1# 的帖子
解决方法一:设置10个场景,每个客户经理为一个场景。一个接一个运行,可用批处理自动执行场景的连接。这样只要参数化客户就 OK了。解决方法二:
假设 客户经理A:2个客户,客户经理B:4个客户.........以此类推。最后客户经理K:20个客户
对客户经理,客户分别进行参数化,然后对客户做下关联。
客户经理 select next now :顺序update value on:每次迭代
客户:select next now :唯一 update value on:每次出现
以上是个人观点 欢迎指正:) 这个问题要求是一个场景执行,也就是说10个并发用户,每个用户模拟一个客户经理进行操作。
每个客户经理只能登录一次,不能重复登录。
难点:
1.如何保证每个客户经理只能登录一次?
2.如何保证每个客户经理只操作自己的客户?
3.测试人员该如何准备数据呢? 这是个参数化的问题
假设你有N个经理Y个客户 (一个客户对应一个经理,但是一个经理对应多个客户)
那么你要建立一张参数表。类似如下对应关系
经理 客户
A 1
A 2
A 3
B 4
B 5
。。。。。
然后在经理的参数化里选择unique
在客户的参数里选择same as 经理 客户经理登陆和操作客户信息分别放在两个action里,
对客户经理和客户分别做参数化:
客户经理 select next now :顺序update value on:每次迭代;
客户 select next now :唯一;
场景中设置操作客户信息的action迭代。 客户经理登陆和操作客户信息分别放在两个action里,
对客户经理和客户分别做参数化:
客户经理 select next now :顺序update value on:每次迭代;
客户 select next now :唯一;
场景中设置操作客户信息的action迭代。
回复 3# 的帖子
我来简单说一下我的两种思路,,还请多多指教啊,呵呵1、根据你的描述,可以对10个不同的客户经理分别录制脚本,为每个测试脚本设置用户数为1个,并设立相同的集合点,具体对每个脚本中的修改、查询、删除等,可以根据自己需要进行相应的参数化,细节就不在详细描述。
2、可以在同一个脚本中,把不同的客户经理进行的相应的操作放在不同的action中,共10 个action,然后在runtime-settings中进行相应的设置。在run_logs对run的属性进行设置为random,然后对每个action操作也设置相应的属性,分别分配的比例值为10%,最后到场景中进行设置分配10个用户即可,具体细节部分,大家再接着讨论。呵呵 4楼的方法基本上可以解决查询和更新问题。
这个问题主要是要引导大家考虑测试数据的准备。
在测试之前,其实就应该准备好一些数据,例如创建10个客户经理,每个客户经理分配一定数量的客户,
固定好每个客户经理的一些客户,像4楼说的那样使用Unique分配参数。
另外要考虑的是客户的删除,注意的是客户删除就没有了,所以每个客户经理都要留出来一些客户供删除。
查询,更新和删除运行的时候每个Vuser都会重复执行多次的。
查询,更新使用一个参数表
删除使用另外一个参数表
这两个表最好分开。
每次执行以后,要重新从数据库中选择删除的数据表数据。
另外也可以考虑备份以后,每次测试前恢复数据。 首先客户经理是需要并发的,所以客户经理的信息肯定是通过unique来实现的
如果要简单的做那么我直接会使用unique中间的手动分配数据块来实现
但是这样分配的缺点是不能随机选择记录
如果要加强,那么我会使用c语言在中间对用户来做判断,读取不同的参数名来实现
页:
[1]