在LR中测多少lr如何模拟用户并发发就参数化多少数据...

参数化数据为200人,但在LR中查看参数化只有100人,应该怎么调整-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
参数化数据为200人,但在LR中查看参数化只有100人,应该怎么调整
来源:互联网 发表时间: 13:23:29 责任编辑:李志喜字体:
为了帮助网友解决“参数化数据为200人,但在LR中查看参数化只有100人,应该怎么调整”相关的问题,中国学网通过互联网对“参数化数据为200人,但在LR中查看参数化只有100人,应该怎么调整”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:参数化数据为200人,但在LR中查看参数化只有100人,应该怎么调整,具体解决方案如下:解决方案1:
最多用户数量是可以修改的,这100是系统默认的。可以到***目录下的config/vugen下修改参数MaxVisibleLines的数字为自定义的最大数量
解决方案2:
昂,我看到你给的链接,但是具体怎么看实际运行的用户数呢
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
问题1:请问:用户名的参数化最大只能有100个吗?我倒了2000个用户,但是导入后只显示100个?
问题2:我在运行环境设置中设置的虚拟用户数量是500,但是我做的参数化只有100,剩下的400用户是怎么运行的?
问题3:我设置了运行20分钟,没有设置循环次数,录制的脚本登录的用户也没有退出系统,运行完成后,查看用户第一个循环了20次,是不是第一个用户登录了20次,同时也是20个用户在线。最后计算系统同时在线人数要加上循环的次数
参数化的人数多少是可以设置的。LOADRUNNER***目录下:Program Files\HP\LoadRunner\config\
把vugen.ini这个文件里的MaxVisibleLines值改大就行了。
主要看在参数里面怎么设置了。参数设置里面有一个“select next row”,就是针对虚拟用户对参数的选择的设置。比如说选择“sequential”,那么你参数化100个值,虚拟用户500个,那么这1-100个用户会依次调用这100个值,从第101-200个用户开始重头循环调用。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10475次
排名:千里之外
原创:16篇
转载:19篇
(2)(1)(2)(2)(1)(1)(7)(3)(1)(3)(10)(3)查看: 4904|回复: 11
怎么查看并发测试的每个用户的请求与响应内容?
该用户从未签到
不知道大家是否经常会遇到这样的事情:
单用户可以正常运行,但是并发时有经常出现几个失败的用户,这时我们就没办法调试了。
如果能有办法知道每个用户的请求与响应内容,就可以比较容易定位问题。
不知道LoadRunner中有没有这个功能。。。。。
[ 本帖最后由 ccaklyw 于
22:33 编辑 ]
该用户从未签到
在场景中选择vuser点log,当然前提是你开log记录
该用户从未签到
找到一篇关于LoadRunner日志的详细说明给大家
一、Run-Time Setting日志参数的设置
在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本时Loadrunner对日志的操作行为进行定义,下面我们在逐一介绍:
1、&&Enable logging启用日志记录
如果选中该选项Loadrunner在执行脚本时,进行日志的记录,否则不记录日志
2、&&Send messages only when an error occurs 仅在出错时发送消息
& && & 也称为 JIT (实时)消息传递,仅当错误发生时才写入日志,选择该选项后则可以设置高级选项,指明日志缓存的大小,loadrunner默认的日志到小为1k
3、&&Always send messages
始终发送消息
4、&&Standard log
& && & 标准日志:创建在脚本执行期间发送的函数和消息的标准日志,供调试时使用。
对于大型负载测试场景、优化会话或配置文件禁用此选项。
如果日志记录级别设置为“标准”,当把脚本添加到场景、会话步骤或配置文件
中时,日志记录模式将被自动设置为“Send messages only when an error occurs”。但是,如果日志记录模式被禁用或者设置为“扩展”,则将脚本添加到场景、会话步骤或配置文件中将不会影响其日志记录设置。
5、&&Extended log-----Parameter substitution
参数替换:选择此选项可以记录指定给脚本的所有参数及其相应的值
当脚本进行参数化、插入事务、关联等优化后,在执行脚本过程中,参数化的值、事务所耗时间、关联函数取出的变量值均会在日志中输出,这个选项对调试脚本查看参数化取值、关联取值是否正确有着重要的作用
6、&&Extended log-----Data returned by server
& &选择此选项可以记录服务器返回的所有数据。
& &Loadrunner会将所有对服务器发出请求后的response情况记录在日志中,从这个日志中可以查看到服务器对请求的回应是否正确,在使用关联取值时往往需要到该日志中查看需要关联的值,从而确认所取数据左右边界。
7、&&Extended log-----Advanced trace&&高级跟踪
& && & 选择此选项可以记录 Vuser 在会话期间发送的所有函数和消息。
调试 Vuser 脚本时,该选项非常有用。
二、日志函数的使用
Loadrunner提供了一下几个message函数:
1、lr_message
int lr_message (const char * format, exp1, exp2,...expn.);
中文解释:lr_message函数将信息发送到日志文件和输入窗口。在VuGen中运行时,输入文件为output.txt。
char* abort=&aborting&;
&&lr_message (&login failed: %s&, abort);
& & 在日志中将会看到:login failed: aborting
2、lr_log_message
int lr_log_message (const char * format, exp1, exp2,...expn.);
中文解释:lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件发送错误消息或其他信息性消息,可以将该函数用于调试。
3、lr_error_message
int lr_error_message (const char *format, exp1, exp2,...expn. );
中文解释:lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。
如果Run-time settings & General & Miscellaneous &Continue on error未被选中,当脚本执行到此处时将终止执行,这个函数所输出的错误级别较高的信息,所以一般情况下如果使用该函数时选中Continue on error
4、lr_output_message
int lr_output_message (const char *format, exp1, exp2,...expn.);
中文解释:lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。
三、在脚本中定义日志的输出模式
int lr_debug_message (unsigned int message_level, const char *format, ... );
中文解释:lr_debug_message函数在指定的消息级别处于活动状态时发送一条调试信息。如果指定的消息级别未出于活动状态,则不发送消息。您可以从用户界面或者使用lr_set_debug_message,将处于活动状态的消息级别设置为MSG_CLASS_BRIEF_LOG 或MSG_CLASSS_EXTENDED_LOG。要确定当前级别,请使用lr_get_debug_message。
unsigned int lr_get_debug_message ( );
中文解释:lr_get_debug_message函数返回当前的日志运行时设置。该设置确定发送到输出端的信息。日志设置是使用运行时设置对话框或通过使用lr_set_debug_message函数指定的。
int lr_set_debug_message (unsigned int message_level, unsigned int on_off);
中文解释:lr_set_debug_message函数设置脚本执行的调试消息级别message_lvl。通过设置消息级别,可以确定发送哪些信息。启 动设置的方法是将LR_SWITCH_ON作为on_off传递,禁用设置的方法是传递LR_SWITCH_OFF。
参数message_level说明:
&&C语言标志
&&Runtime-setting - Log操作
&&LR_MSG_CLASS_DISABLE_LOG
&&不勾选Enable logging
&&LR_MSG_CLASS_BRIEF_LOG
&&勾选Standard log
Extended Log
&&LR_MSG_CLASS_EXTENDED_LOG
&&勾选Extended log
Result Data
&&LR_MSG_CLASS_RESULT_DATA
&&勾选Data returned by server
Parameter Substitution
&&LR_MSG_CLASS_PARAMETERS
&&勾选Parameter substitution
Full Run-Time Trace
&&LR_MSG_CLASS_FULL_TRACE
&&勾选 Advanced trace
Only on error
&&LR_MSG_CLASS_JIT_LOG_ON_ERROR
&&勾选send messages only when an error occurs
参数on_off说明:
【LR_SWITCH_ON】启用设置
【LR_SWITCH_OFF】禁用设置
看下面的小例子:
log_leavl = lr_get_debug_message();
lr_error_message (&当前是:%d&,log_leavl);
当我设置只有错误信息(error)打印【勾选send messages only when an error occurs】,例子运行结果是:当前是:513;为什么不是512呢,我发现我实际选择的是【Enable logging + send messages only when an error occurs】,按上面的参数说明,就是【1+512】,也就是513了;因此:lr_get_debug_message返回的int数其实是所有勾选操作的代表值相加!
再看下面设置的例子:
//设置runtime-setting的日志选项【不勾选Enable logging】
a = &ABC&;
lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);
//打开Runtime-setting Log 的Parameter substitution设置
lr_debug_message(LR_MSG_CLASS_PARAMETERS,&打开参数保存的系统日志&);
lr_save_string(&aa&,a);
lr_debug_message(LR_MSG_CLASS_PARAMETERS,&关闭参数保存的系统日志&);
lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);
//关闭Runtime-setting Log 的Parameter substitution设置
因为设置了runtime-setting不打印任何日志,所以正常运行脚本应该没有任何日志输出;
但是使用lr_set_debug_message函数打开了日志的设置(输出保存参数操作的日志)
因此脚本运行到lr_save_string(&aa&,a)时,就输出了日志如下:
打开参数保存的系统日志
Action.c(7): Notify: Saving Parameter &ABC = aa&
关闭参数保存的系统日志
该用户从未签到
关于怎么查看LoadRunner记录的日志
不知道如何查看loadrunner运行日志请往这里看
日志分两种
1。在VUGEN中运行后的日志
2。在controller中运行后的日志
日志设置分两步:
1。首先,在VUGEN或controller中run-time setting, 选中always send message,再选择& && &&&extended log-data returned by server.这样可以看到从server返回的信息。
2。选择日志文件路径。
& &对于VUGEN运行后产生的日志,日志文件放在usr文件一个目录下,以.log 和.txt结尾,例如mdrv.log ,output.txt
& &对于controller的日志文件,results&&results settings 中可以设置文件位置
该用户从未签到
知道怎么启用日志了。也知道怎么看日志了。
问题是LoadRunner日志的可读性不强。。。。。杯具。。。。。
该用户从未签到
不需要日志,Controller 跑的时候这样写
if (“ 伪代码:检查点找到!”)
& &&&lr_end_transaction(&GRW1_开户&, LR_PASS);
& & lr_end_transaction(&GRW1_开户&, LR_FAIL);
& & lr_error_message(&你的参数号码,例如参数手机号等等 %s& , lr_eval_string(&{phone_no}&));
说明: 如果对应的检查点没有找到,那么说明此手机号不存在(只是个举例),那么在场景执行中会报一个错误,等执行完毕后,报了的错误都是这句“你的参数号码,例如参数手机号等等 + 手机号码”,然后把这些都可以导出来了。此方法还可以用作数据过滤。
该用户从未签到
没有做不到,只有想不到,LR 好多输出函数既然存在,那么就一定有它存在的道理,好好利用,加油哦
该用户从未签到
恩。还需要继续深入学习。。。。。
该用户从未签到
该用户从未签到
该用户从未签到
楼主解决了吗??我也遇到类似问题
该用户从未签到
楼主可以使用kylinPET工具,失败会打印日志,日志会打印出整个接收的响应内容,与你发送了什么参数。定位方便些
如果是用户时间长,也可以定位到单个用户哪个请求导致时间长
站长推荐 /4
小伙伴们踊跃闯关,赢取测试积点,换取豪礼,还等什么,赶快行动吧~
了解自己的心里圈,学习不同的内容,让自己由内而外强大起来!
赏金公告:悬赏任务已,小伙伴们赶紧行动起来,赚取,去积点商城获取奖励吧!
本期主题:测试设计?一张涂鸦就够了
活动时间:9月2日14:00
Powered by在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好;对TPS不是非常理解,也根本不知道它们之间的关系,因此非常有必要进行解释。
并发用户数:指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标,
Vu和TPS换算
简单例子:在术语中解释了TPS是每秒事务数,但是事务时要靠虚拟用户做出来的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000TPS,至少需要1000个用户;因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。
复杂公式:
试想一下复杂场景,多个脚本,每个脚本里面定义了多个事务(例如一个脚本里面有100个请求,我们把这100个连续请求叫做Action,只有第10个请求,第20个请求分别定义了事务10和事务20)具体公式如下:
符号代表意义:
Vui表示的是第i个脚本使用的并发用户数
Rtj表示的是第i个脚本第j个事务花费的时间,此时间会影响整个Action时间
Rti表示的是第i个脚本一次完成所有操作的时间,即Action时间
n 表示的是第n个脚本
m 表示的是每个脚本中m个事务
那么第j个事务的TPS = Vui/Rti
如何获取Vu和TPS
并发用户数(Vu)获取
新系统:没有历史数据作参考,只能通过业务部门进行评估。
旧系统:对于已经上线的系统,可以选取高峰时刻,在一定时间内使用系统的人数,这些人数认为属于在线用户数,并发用户数取10%就可以了,例如在半个小时内,使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。
新系统:没有历史数据作参考,只能通过业务部门进行评估。
旧系统:对于已经上线的系统,可以选取高峰时刻,在5分钟或10分钟内,获取系统每笔交易的业务量和总业务量,按照单位时间内完成的笔数计算出TPS,即业务笔数/单位时间(5*60或10*60)
如何评价系统的性能
针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。
通过大量性能测试我们发现不需要用上万的用户并发去进行测试,只要系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。另外咨询很多专家做过的性能测试项目,基本都没有超过5000用户并发。
因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。
性能测试策略
做性能测试需要一套标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没有预估的情况下,一次加几万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相关的策略。
Loadrunner VS PTS
从下图对比项可以看出,PTS比Loadrunner(LR)更能让客户接受。
Loadrunner
被测系统软硬件环境需要额外购买?
基础设施软硬件由阿里云提供,只需要购买服务
压力机环境需要额外购买?
基础设施软硬件由PTS提供,只需要购买服务
便宜,按需收费
商业化工具License非常贵
LR很多功能基本上用不到,没必要大马拉小车
操作、学习等
LR不易上手
系统稳定性
LR压测过程中经常出现莫名其妙错误
场景模拟条件
PTS分布在全国各地的分布式集群可以真实模拟出现实场景,而LR不太容易模拟,即使可以的话,控制机和压力机通信经常掉线
系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。
系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。
在文章中找不到问题***?您还可以
热门栏目订阅LoadRunner从已存在的数据库中导入数据进行参数化_LoadRunner_领测软件测试网
LoadRunner从已存在的数据库中导入数据进行参数化
发表于:来源:作者:点击数:
LoadRunner 从已存在的 数据库 中导入数据进行参数化 看你的数据是什么类型了,我用的 SQL SERVER数据库。(ORACLE数据库也可以) 第一步:先在本机上配置ODBC驱动,步骤略 第二步:在数据库里创建一个表,写入你需要参数化的值 第三步:打开录制好的脚本,
从已存在的中导入数据进行参数化
看你的数据是什么类型了,我用的 SERVER数据库。(ORACLE数据库也可以)第一步:先在本机上配置ODBC驱动,步骤略第二步:在数据库里创建一个表,写入你需要参数化的值第三步:打开录制好的脚本,找到需要参数化的值,例如登陆时的用户名USERNAME第四步:在脚本中选中用户名,右键单击选择用参数替换第五步:在弹出的对话框中选择参数的类型是FILE,然后点击属性,点击对话框中的 DATA WIZARD 选择第PL/SQL,其余步骤都一样第六步:在弹出的对话框中,选择第PL/SQL,最下面的返回几行记录需要根据几具体的用户而定,然后确定就可以了第七步:在下一个界面中点击CREATE,选择刚才创建的ODBC驱动,确定。然后输入连接数据库的用户和密码,还有表所在的数据库就可以了第八步:在SQL STATEMENT中输入SQL语句,就是取表里的需要参数化的信息,完成后确定就可以了。切记!!!数据库里的表中定义的用户名数据类型设成VCHAR类型,如果是CHAR类型参数化后脚本将不能正常回放
原文转自:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
拜托,要讲你就讲的详细一点,要不干脆别浪费大家时间好不?第七步中的create是怎么出来的?是在上一个页面选择“Specify SQL statement manu”之后,下一步

参考资料

 

随机推荐