Loadrunner VuGen实战---基本组成、协议、脚本优化、参数化(三)

一、3大基本组件:VuGen、Controller、Analysis

  1.VuGen:录制、编写脚本。

  2.Controller:性能测试场景设计以及监控的地方。

  3.Analysis:生成图表报告的地方。

二、深入理解协议选择

  1.什么是协议?

    协议是数据包再交换、通信时要按照统一的约定,这样双方才能识别。

  Loadrunner有一个Agent进程专门监控客户端和服务器之间的通信。

  2.Run-time setting中:注意调Packing和Think time才会较符合真实情况。

三、脚本优化

  插入事务、插入集合点、设置思考时间、设置参数化、设置关联、设置检查点、插入注释。

四、参数化

1.一般参数化的应用场景有如下网址:http://www.cnblogs.com/fnng/archive/2012/06/22/2558900.html

2.数据分配与更新方式                                                                       

脚本设置完参数化,脚本运行的每一遍所取的参数化的值都不一样,那么这个值按照个什么情况来取呢?会有很多种方式

Select next row【选择下一行】:

顺序(Sequential):按照参数化的数据顺序,一个一个的来取。

随机(Random):参数化中的数据,每次随机的从中抽取数据。

唯一(Unique):为每个虚拟用户分配一条唯一的数据

Update value on【更新时的值】:

每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。

每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。

只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在运行将会报错)

上面两个选项都有三种情况,如果将他们进行组合,将产生九种取值方式。


Select Next Row

【选择下一行】


Update Value On

【更新时的值】


Replay Result

【结果】


顺序(Sequential)


每次迭代(Each iteration)


结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条


顺序(Sequential)


每次出现(Each occurrence)


结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条


顺序(Sequential)


只取一次(once)


结果:表中写入15条一模一样的数据。

功能说明:每次迭代都取参数化文件中第一行的数据。


随机(Random)


每次迭代(Each iteration)


结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值


随机(Random)


每次出现(Each occurrence)


结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值


随机(Random)


只取一次(once)


结果:表中写入15条相同数据

功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。


唯一(Unique)


每次迭代(Each iteration)

自动分配块大小


结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到。


唯一(Unique)


每次出现(Each occurrence)

步长为1


结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式

Abort Vuser:中断虚拟用户

Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。

Countinue with last value:继续用最后一条数据


唯一(Unique)


只取一次(once)


结果:表中写入15条相同数据

功能说明:每次都取参数文件中的第一条数据进行赋值

Ps:关于调用数据库实现参数化的方式,放在后一篇细说。被一个蛋疼的问题和这篇文章折腾一天。

时间: 2024-09-30 04:48:46

Loadrunner VuGen实战---基本组成、协议、脚本优化、参数化(三)的相关文章

Loadrunner VuGen实战---集合点、关联(四)

一.集合点: 1.我们可以通过以下举例来理解这个概念: 10名运动员从起点出发,要跑3圈,规定再次通过起点时要等带所有运动员全部到达后,才能进行第二圈赛跑.   2.实战操作; 1)脚本中点击“Insert--Rendezvous”进行对应位置集合点插入. 2)Controller中点击“Scenario--Rendezvous”,其中进行Policy的设置,在这里可以对集合点的触发条件进行调整. 二.关联: 1.什么条件下使用关联呢? 首先,如果多次回放都报错,且自身感觉录制并没有任何问题.

LoadRunner编写Socket协议脚本方法

本文主要介绍使用LoadRunner手工编写Windows Socket协议测试脚本的方法. 通过LoadRunner编写Windows Socket协议测试脚本,总体说来,比较简单.就像把大象放进冰箱一样,总共分三步: 第一步:把冰箱门打开 //建立到服务端的连接 rc =    lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=128.64.64.23:89

LoadRunner脚本优化之—参数化迭代介

在LoadRunner的脚本优化时,有时发送给服务器的请求参数化时,服务器返回的内容也会和参数化的内容相对应,例如发送的请求带有查询key=123,则服务器也会返回含有123相关的内容.这时我们在使用检查点检查服务器参数化返回的数据正确性时,通常也会用到和服务器同样的参数. 这样在每次迭代过程中,每次都会取不同的值,完成检查过程. 但是如果基于实际场景设计的脚本是:在一个迭代周期内,此action需要循环多次,于是引入了block块.将此action加入到一个block块中,设置循环次数为2.再

通过HP Loadrunner VuGen来录制安卓的应用

通过HP Loadrunner VuGen来录制安卓的应用 发布时间: 2015-1-12 13:13    作者: Elaine00    来源: 51Testing软件测试网采编 字体:  小  中  大  | 上一篇 下一篇 | 打印  | 我要投稿  | 推荐标签: 性能测试 性能测试工具 软件测试工具 LoadRunner 通过这篇文章,我将介绍如何通过HP Loadrunner VuGen来测试一个安卓应用的网络流量.测试过程中,安卓的SDK将用来执行安卓应用,同时HP Loadru

大开测试:性能—如何调整经常用到的相关协议脚本模板(连载4)

7.4  如何调整经常用到的相关协议脚本模板 1.问题提出 在应用LoadRunner VuGen过程中,可能经常会用到一些非系统函数,同时想加入一些注解信息和日志输出信息,将输出日志信息条理化,方便调试和分析,那么有什么方法将我们经常用到的协议脚本模板调整变成符合要求的脚本模板呢? 2.问题解答 可以针对自己经常用到的协议,加入必要注解,引用经常会用到的函数库文件,条理化日志输出信息等.下面仅以调整Web(HTTP/HTML)协议脚本模板为例. 首先,找到LoadRunner安装目录下的Tem

LR杂记-用LoadRunner编写socket应用的测试脚本

LoadRunner提供了很好的对socket应用的支持,用户可以通过录制方法完全获得客户端发送和接收的数据,然后在录制的基础上对相应的数据进行参数化和关联等处理. 但在有些情况下(例如,客户端程序没有windows上的版本),我们就很难通过录制达成生成脚本的目标了.但如果我们能够完全知晓服务端和客户端的交互过程,完全手工编写一个测试脚本也并不是一件特别困难的事情. 在本文中,我们以一个实际的例子说明如何根据服务端和客户端交互的过程,用LoadRunner自行编写相应的脚本. 以下是服务端工作线

loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 将字符串保存为参数 lr_save_string("string you want to save", "arg_name"); 举例:用参数来替换需要打开的url链接 Action2() { lr_save_string("http://172.25.75

loadrunner11的移动端性能测试之脚本优化

测试步骤之脚本优化(Script) 看到这里,是不是疑惑录制好的脚本还需要优化吗,答案是肯定的. 优化概要 脚本优化包括插入注释(Comment),插入事务(Transaction),插入检查点(Check),插入集合点(Rendezvous),脚本参数化(Parameter),关联技术(Correlation)等等. 打开VuGen,相关设置如下 进入到脚本页(顶部的Script按钮),就能看到录制到action部分的脚本了,如下图所示 上面是我录制优化的登陆模块脚本,学过编程语言就大概能知道

loadrunner脚本中参数化和返回值输出log到外部文件

loadrunner脚本中参数化和返回值输出log到外部文件 很多时候,我们在做性能测试之前,需要造数据,但是使用的这些参数化数据和生成的返回数据在后面的测试都会用的,所以我们需要在造数据过程中,将参数化的数据和生成的返回数据保存起来,以便后续测试中使用!下面就以webservice协议的脚本为例,介绍下如何来实现所需的功能! int id,scid;char *group; //定义文件保存位置char *filename = "E:\\data\\test.log";long fi