3. 用户点击“启动”,进行课程学习,进入DS模块
4. 在DS模块中进行学习,过程包括:首先,点击一次课程结构树;然后,进行课程内容的学习。
5. 点击“返回LMS” 按钮,返回到lmm模块 点击“退出”按钮,退出系统 场景描述四:
1. 用户登录的lmm模块,总共登陆48个用户,每秒同时登录10个用户。 2. 用户点击“登记的教程”
3. 用户点击“启动”,进行课程学习,进入DS模块
4. 在DS模块中进行学习,过程包括:首先,点击一次课程结构树;然后,进行课程内容的学习。
5. 点击“返回LMS” 按钮,返回到lmm模块,点击“退出”按钮,退出系统 场景描述五:
1. 用户登录的lmm模块,总共登陆100个用户,所有用户同时并发操作。 2. 用户点击“登记的教程”
3. 用户点击“启动”,进行课程学习,进入DS模块
4. 在DS模块中进行学习,过程包括:首先,点击一次课程结构树;然后,进行课程内容的学习。
5. 点击“返回LMS” 按钮,返回到lmm模块 场景描述六:
1. 用户登录的lmm模块,总共登陆200个用户,所有用户同时并发操作 2. 用户点击“登记的教程”
3. 用户点击“启动”,进行课程学习,进入DS模块
4. 在DS模块中进行学习,过程包括:首先,点击一次课程结构树;然后,进行课程内容的学习。
5. 点击“返回LMS” 按钮,返回到lmm模块,点击“退出”按钮,退出系统 场景描述七:
1. 户登录的lmm模块,总共登陆24个用户。所有用户都同时并发操作 2. 所有用户都同时并发操作,户点击“登记的教程”中“test”课件 使用自发测试工具,目的测试24个用户同时打开课件时服务器性能 场景描述八:
1. 登录的lmm模块,总共登陆60个用户。所有用户都同时并发操作 2. 有用户都同时并发操作,户点击“登记的教程”中“test”课件 使用自发测试工具,目的测试60个用户同时打开课件时服务器性能
使用LoadRunner进行负载/压力测试
录制基本的用户脚本
创建用户脚本需要用到VuGen。提示: 运行VuGen 最好在1024*768 的分辨率下, 否则有些工具栏会看不到。
启动Visual User Generator 后, 通过菜单新建一个用户脚本, 选择系统通讯的协议。
这里我们需要测试的是Web 应用,同时考虑到后台SQL数据库所以我们需要选择Web(HTTP/HTML)协议+SQL SERVER协议,确定后, 进入主窗体。通过菜单来启动录制脚本的命令。
●在URL 中添入要测试的Web 站点地址..。
●测试http://lms.ah.sp.com.cn/lms-lmm/loginForm.do选择要把录制的脚本放到哪一个部分, 默认情况下是“Action”。
这里简单说明一下:VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其
中vuser_init 和vuser_end 都只能存在一个, 不能再分割, 而Action 还可以分成无数多个部分( 通过点击New 按钮, 新建ActionXXX)。在录制需要登陆的系统时, 我们把登陆部分放到vuser_init 中, 把登陆后的操作部分放到Action 中, 把注销关闭登陆部分放到vuser_end 中。( 如果需要在登陆操作设集合点, 那么登陆操作也要放到Action 中, 因为vuser_init 中不能添加集合点) 在其他情况下, 我们只要把操作部分放到Action 中即可。注意: 在重复执行测试脚本时,vuser_init 和vuser_end 中的内容只会执行一次, 重复执行的只是Action 中的部分。
●点“ 选项 ”按钮, 进入录制的设置窗体, 这里一般情况下不需要改动。 ●然后点“OK” 后,VuGen 开始录制脚本。在录制过程中, 不要使用浏览器的“ 后退” 功能,LoadRunner 支持不太好! 录制过程中, 在屏幕上会有一个工具条出现。录制的过程和WinRunner 有些类似, 不再多介绍。录制完成后, 按下“ 结束录制” 按钮,VuGen 自动生成用户脚本, 退出录制过程。
完善测试脚本
当录制完一个基本的用户脚本后, 在正式使用前我们还需要完善测试脚本, 增强脚本的
灵活性。一般情况下, 我们通过以下几种方法来完善测试脚本。插入事务、插入结合点、插入注解、参数化输入。这里只举例介绍参数化如何设置,其它只作简单介绍。
4.2.1 插入事务
事务(Transaction): 为了衡量服务器的性能, 我们需要定义事务。比如: 我们在脚本
中有一个数据查询操作, 为了衡量服务器执行查询操作的性能, 我们把这个操作定义为一个事务, 这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时, 直到运行到该事务的结束点, 计时结束。这个事务的运行时间在结果中会有反映。
插入事务操作可以在录制过程中进行, 也可以在录制结束后进行。LoadRunner 运行在
脚本中插入不限数量的事务。
具体的操作方法如下: 在需要定义事务的操作前面, 通过菜单或者工具栏插入。输入该事务的名称。注意: 事务的名称最好要有意义, 能够清楚的说明该事务完成的动作。插入事务的开始点后, 下面需要在需要定义事务的操作后面插入事务的“ 结束点”。同样可以通过菜单或者工具栏插入。默认情况下, 事务的名称列出最近的一个事务名称。一般情况下, 事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下, 我们也不需要修改, 除非在手工编写代码时, 有可能需要手动设置事务的状态。
4.2.2 插入集合点
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中, 可能会
要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点, 这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待, 当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据, 从而达到测试计划中的需求。
注意: 集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init 和vuser_end 中不能插入集合点。具体的操作方法如下: 在需要插入集合点的前面, 通过菜单或者工具栏操作输入该集合点的名称。注意: 集合点的名称最好要有意义, 能够清楚的说明该集合点完成的动作。
插入注释
注释的作用就不多说了, 不过插入注释最好是在录制过程中。具体的操作方法如下: 在需要插入注释的前面, 通过菜单或者工具栏操作
参数化输入
如果用户在录制脚本过程中, 填写提交了一些数据, 比如要增加数据库记录。这些操作
都被记录到了脚本中。当多个虚拟用户运行脚本时, 都会提交相同的记录, 这样不符合实际的运行情况, 而且有可能引起冲突。为了更加真实的模拟实际环境, 需要各种各样的输入。参数化输入是一种不错的方法。 用参数表示用户的脚本有两个优点:
① 可以使脚本的长度变短。
② 可以使用不同的数值来测试你的脚本。例如, 如果你企图搜索不同名称的图书, 你
仅仅需要写提交函数一次。在回放的过程中, 你可以使用不同的参数值, 而不只搜索一
个特定名称的值。
参数化包含以下两项任务: ① 在脚本中用参数取代常量值。 ② 设置参数的属性以及数据源。
参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。 另外, 不是所有的函数都可以参数化的。
参数化输入的讲解, 我们采用一个例子的方式来进行。 在本例中我们参数化用户的登陆名:
先看如下脚本,通过脚本录制找到用户登陆部分,如图
框选住登陆名,点鼠标右键,弹出对话框,选择“替换为新参数”弹出对话框 参数名随意取,建议取通俗易懂的名字,下面我们重点介绍一下参数的类型。 ●DateTime: 很简单, 在需要输入日期/时间的地方, 可以用DateTime 类型来替代。
其属性设置也很简单, 选择一种格式即可。当然也可以定制格式。 .●Group Name:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner
使用该虚拟用户所在的Vuser Group 来代替。但是在VuGen 中运行时,Group Name 将会是None
.●Load Generator Name: 在实际运行中,LoadRunner 使用该虚拟用户所在Load Generator 的机器名来代替。