loadrunner中十六进制报文参数化方法
loadrunner的url编码和中文参数化总结
loadrunner的url编码和中⽂参数化总结
在录制选项中,“HTTP属性-⾼级”中选择⽀持字符集,UTF-8
此时如果在web_submit_data中有中⽂,在脚本查看中能正确显⽰为中⽂,⽽不是乱码。
此时web_url中仍会显⽰为url(注意不是乱码)编码。
其实url编码就是⼀个字符ascii码的⼗六进制如 “胡”的ascii码是-17670,⼗六进制是BAFA,url编码是“%BA%FA”
UTF-8是⼀种可变长度字符编码,⽤在⽹页上可以同⼀页⾯显⽰中⽂简体繁体及其它语⾔(如英⽂,⽇⽂,韩⽂),如“中国”:中国
“HTTP属性-⾼级”中选择⽀持字符集选择UTF-8的意义在于将UTF-8 符转换为您所在语⾔环境的计算机编码,因⽽能正确显⽰在屏幕上
常⽤函数解释:
lr_output_message 输出消息
lr_output_message ("hello,world");
strcpy 复制⼀个字符串到另外⼀个字符串
char tmp[50];
strcpy(tmp,"hello,world");
lr_output_message ("%s",tmp);
注意,char tmp[50]变量定义要放在action的最开始,否则会报错
web_url("search.aspx",
//"URL=http://192.168.20.60:8080/zk/search.aspx?key=U%3D%E4%B8%AD",
"URL=http://192.168.20.60:8080/zk/search.aspx?key=U%3D{skey}",
loadrunner 参数化 路径
loadrunner 参数化路径
LoadRunner 参数化是一种常用的性能测试技术,可以有效地模拟真实世界的负载情况,实现测试数据的灵活性和可重复性。在LoadRunner中,参数化路径是指在测试过程中将路径作为参数进行动态调整,以模拟不同用户访问不同路径的情况。
为了更好地理解LoadRunner参数化路径的使用,我们首先需要了解LoadRunner的基本原理。LoadRunner是一款用于模拟和分析应用程序性能的测试工具,通过模拟用户的行为和生成负载来评估系统的性能。在性能测试中,经常需要模拟大量用户同时访问不同路径的情况,以验证系统的承载能力和响应时间。
在LoadRunner中,参数化路径可以通过多种方式实现,常用的有使用数据文件、使用函数和使用正则表达式等。下面将分别介绍这几种参数化路径的方法。
使用数据文件进行参数化路径是最常见的方法之一。通过将路径保存在一个数据文件中,LoadRunner可以在每次执行测试时,自动从数据文件中读取不同的路径,并进行相应的访问。这种方法适用于需要模拟大量用户访问不同路径的情况,可以有效地减少测试脚本的维护工作。
使用函数进行参数化路径是另一种常见的方法。LoadRunner提供了一系列内置函数,可以在测试脚本中使用这些函数生成不同的路径。
例如,可以使用lr_paramarr_random函数从一个路径数组中随机选择一个路径进行访问,或者使用lr_paramarr_idx函数按照一定的顺序选择路径进行访问。这种方法适用于需要按照一定的规则生成路径的情况,可以灵活地控制路径的生成方式。
LoadRunner_参数化
Load Runner 参数化基础讲解
Loadrunner中参数的设置
在做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
在录制程序运行的过程中,VuGen(脚本生成器)自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。
本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。
除了GUI,以下的内容适合于各种类型的用户脚本。
一、关于参数的定义
在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。
例如,你录制了一个Web应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。
当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“UNIX”。那么,你就可以用参数来取代这个常量。
结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文件,也可以是内部产生的变量。
LoadRunner 参数化的功能详解
LoadRunner 参数化的功能详解
参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数。对Vuser脚本进行参数化的好处:
1、减小脚本的大小
2、提供了使用不同的脚本的值执行脚本的能力
参数化涉及两个任务:
1、用参数替换Vuser脚本的常量值
2、为参数设置属性和数据源
“Select next ro w”定义的是如何选择下一行数据。该处有三个选项"Sequential","Random","Unique",
Sequential:顺序地向Vuser分配数据。
Random:当测试开始运行时,“随机”方法为每个Vuser分配一个数据表中的随机值。
Unique:为每一个Vuser的参数分配一个唯一的顺序值。在这种情况下必须确保表中的数据对所有的Vuser
和它们的迭代来说是充足的。如果拥有20个Vuser并且要进行5次迭代,则测试者的表格中必须至
少包含100个数值。
“Update value on”定义的是什么时候更新数据值,备选项有每次迭代,每次出现和一次。
表LoadR unner参数更新方法和数据分配
如果LoadRunner的函数中某个参数不能直接使用LoadRunner参数,那么可以通过lr_eval_string进行转换取到参数的值。
参数表中sel ect next row和upda te value on的设置
LR的参数的取值,和select next row和update value on的设置都有密不可分的关系。下表给出了select next row和update value on不同的设置,对于LR的参数取值的结果将不同,给出了详细的描述。
详细分析LoadRunner参数化
详细分析LoadRunner参数化
在进⾏⽹页的性能测试时,对⽹页的登录界⾯进⾏压⼒测试情况下就会使⽤到多⽤户进⾏登录,就需要对登录名和密码进⾏参数化,那么loadrunner 怎么参数化设置呢?下⾯我们来详细分析⼀下。
⼀、我们这⾥通过loadurnner录制⼀个软件⾃带的航空⽹站登陆。下⾯是截取的登录代码
⼆、下⾯通过loadrunner对⽤户名和密码进⾏参数化设置。
1、双击jojo,右击选择Replace with a Parameter,弹出窗⼝Select or Create Parameter,在 Parameter name处输⼊变量名name,点击OK,密码重复名字的操作。
2、把⽤户名jojo改成变量name,密码bean改成变量psw
三、下⾯对参数进⾏编辑添加。第⼀种⽅法是直接在界⾯上添加编辑。
1、点击P图标或者按键盘ctrl +L 进⼊参数化设置界⾯,
2、点击name进⾏编辑变量参数,点击Edit with Notepad,弹出记事本框,输⼊好⽤户名后,保存后,参数就设置完成了。密码也是重复名字的操作。
3、也可以在界⾯上直接编辑,添加⾏、列或者删除⾏、列
4、参数都添加后之后,我们要注意每个参数对应的名称
5、也可以把所有的参数编辑在⼀个⽂件⾥⾯,⼀列对应⼀个参数。
6、当参数放在在⼀个⽂件⾥⾯时,设置处就要⼀⼀对应。
四、第2种⽅法对参数进⾏编辑添加,就是直接导⼊已编辑好了的数据。
1、在⽂件处选择已经编辑好的数据⽂件位置,点击打开后,⽂件111.dat的数据就⾃动导⼊进来了。
如何对Loadrunner脚本进行参数化
如何对脚本进行参数化
在录制程序运行地过程中,脚本生成器自动生成由函数组成地用户脚本.函数中参数地值就是在录制过程中输入地实际值.参数化是编辑脚本最重要地一部分之一.
对用户脚本进行参数化有两大优点:
.可以减少脚本地大小和脚本数量,借助参数化我们可以减少脚本地数量,如果不进行参数化我们为了达到目标可能要拷贝并修改很多个脚本.
.可以使用不同地数值来测试你地脚本,使业务更接近真实地客户业务,每个虚拟用户使用不同参数值来模拟这样才接近客户地实际情况.
如何进行参数化:
参数化包含以下两项任务:.参数地创建,即在脚本中用参数取代常量值..
定义参数地属性以及设置其数据源.值得注意地是,参数化仅可以用于一个函数中地参量.不能用参数表示非函数参数地字符串.另外,不是所有地函数都可以参数化地.
一、参数地创建
创建参数可以指定名称和类型来创建.不存在对脚本中参数个数地限制.在程序地用户脚本中,你可以使用如下过程在基于文本地脚本视图中创建参数.或者,也可以在基于图标地树形视图中创建参数.
通过以下步骤在基于文本地脚本视图中创建一个参数:
、将光标定位在要参数化地字符上,点击右键.打开弹出菜单.
、在弹出菜单中,选择" ".选择或者创建参数地对话框弹出.
、在" "中输入参数地名称,或者选择一个在参数列表中已经存在地参数.
、在" "下拉列表中选择参数类型.
、点击"",关闭该对话框.脚本生成器便会用参数中地值来取代脚本中被参
数化地字符,参数用一对"<>"括住.
注意:在参数化或者用户脚本地时候,必须参数化整个字符串,而不是其中地部分.另外注意:除了或者,缺省地参数括号对于任何脚本都是"<>".你可以在" "对话框中地""标签(> )中定义参数括号种类.
loadrunner 参数化取值方式
loadrunner 参数化取值方式
(原创版)
目录
1.概述
2.LoadRunner 的基本概念
3.LoadRunner 参数化取值的方式
4.结论
正文
1.概述
LoadRunner 是一种用于测试应用程序性能的负载测试工具。它可以模拟大量用户同时访问应用程序,以评估其性能和稳定性。在 LoadRunner 中,参数化是测试脚本中的一个重要部分,它可以帮助测试人员更轻松地管理和调整测试数据。
2.LoadRunner 的基本概念
在 LoadRunner 中,参数化是指将测试脚本中的某些值替换为实际运行时获取的值。这些值可以是数据库中的记录、文件中的数据或其他来源的值。通过参数化,测试人员可以轻松地为测试脚本设置不同的输入数据,以模拟不同的用户操作和场景。
3.LoadRunner 参数化取值的方式
LoadRunner 提供了多种参数化取值的方式,包括:
(1) 直接参数化:在测试脚本中直接指定参数的取值。例如,测试脚本中可以通过`lr_param_string`函数设置一个字符串参数的值。
(2) 从文件中读取参数:测试脚本可以从文件中读取参数的取值。例如,可以使用`lr_load_string_file`函数从文件中读取字符串参数的值。
(3) 从数据库中获取参数:测试脚本可以从数据库中获取参数的取值。例如,可以使用`lr_get_result_set`函数从数据库中获取记录集,并将
其作为参数传递给测试脚本。
(4) 使用随机数生成器:测试脚本可以使用 LoadRunner 内置的随机数生成器生成随机参数值。例如,可以使用`lr_random_number`函数生成一个随机数。
Load Runner进阶操作
参数化脚本
参数化创建
将光标定位在要参数化的字符上,单击右键,弹出快捷菜单,选择“Replace with a Parameter”,打开选择或者创建参数对话框
参数化创建
在“Parameter name”中输入参数的名称,或者选择一个在参数列表中已经存在 的参数。
File data是我们最常使用的一种参数类型,它的数据存在于文件中。该文 件的内容可以手工添加,也可以利用LoadRunner的Data Wizard从数据库中 导出。
处理器分析方法
查看System\%Total Processer Time性能计数器的计数值
该计数值是体现服务器整体的处理器利用率,对多处理器的系统而言,该计数值体 现的是所有CPU的平均利用率。如果该值的数值持续超过90%,则说明整个系统面临 着处理器方面的瓶颈,需要通过增加处理器来提高性能。
查看每个CPU的Processor\%Processor Time和Processor\%User Time
Processor\%User Time指系统的非核心操作消耗的CPU时间,如果该值较大,可 以考虑通过算法优化等方法降低这个值。如果该服务器是数据库服务器,该值大的原因 很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库 系统进行优化。
研究系统处理器瓶颈
查看System\Processor Queue Length计数器的值,当该计数器的值大于CPU数量 的总数+1时,说明产生了处理器阻塞。当%Process Time很高时一般都伴随着处理器阻 塞。
payload 参数中的16进制
payload 参数中的16进制
Payload参数中的16进制,是指在一个网络数据包中,用16进制方式表示的有效载荷的一部分。在计算机网络通信中,数据在传输过程
中需要被封装成数据包的形式,而数据包的结构包含头部和有效载荷。有效载荷是指数据包中传输的实际数据内容,是数据传输的重要组成
部分。
在Payload参数中,通常会包含16进制编码形式的数据,这些数据
可能是传输的实际信息,也可能是网络协议控制信息等。在网络通信中,为保证数据传输的正确性和可靠性,有时候需要对传输的数据进
行加密或者校验等操作,这些操作通常使用16进制编码方式将信息转化为二进制数据进行处理。
16进制的特点是可以用更简便的方式表示较长的二进制数据,例如8
位的二进制数可以用两位的16进制数表示,因此在网络通信中,16
进制编码被广泛使用。
对于一些特殊的数据格式,例如音频、视频等,由于数据量较大,直
接传输效率低下,因此需要对数据进行压缩和编码。这时候,就需要
采用16进制编码的方式对压缩后的数据进行传输和存储,以满足高效传输和数据处理的要求。
总之,Payload参数中的16进制是计算机网络通信中的一种数据表示方式,使用16进制编码可方便地进行数据处理和传输。在网络通信中,16进制编码被广泛使用,能够提高数据传输的效率和可靠性。
Loadrunner参数的取值方式
根据取值方式以及数据分配方式进行组合,将产生九种取值方式。
Select Next Row 【选择下一行】Update Value On
【更新时的值】
Replay Result
【结果】
顺序(Sequential)每次迭代(Each i t eration)结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。
当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为
16次,那执行结果中,参数化文件第一行的数据有
两条
顺序(Sequential)每次出现(Each occurrence)结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。
当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为
16次,那执行结果中,参数化文件第一行的数据有
两条
顺序(Sequential)只取一次(once)结果:表中写入15条一模一样的数据。
功能说明:每次迭代都取参数化文件中第一行的数
据。
随机(Random)每次迭代(Each i t eration)结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进
行赋值
随机(Random)每次出现(Each occurrence)结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进
行赋值
随机(Random)只取一次(once)结果:表中写入15条相同数据
功能说明:第一次迭代时随机从参数化文件中取一行
loadrunner 参数化加条件逻辑
LoadRunner是一款用于性能测试的工具,它可以模拟多种应用程序的行为,以便找出系统在压力下的性能瓶颈。参数化和条件逻辑是LoadRunner中非常重要的一部分,它们可以帮助用户更好地模拟真实的用户行为,使测试结果更加准确和可靠。
在使用LoadRunner进行性能测试时,需要模拟大量的用户行为,以此来测试系统的性能。而真实的用户行为是多种多样的,有时候一些参数的值会随着用户的行为而发生变化。这时候,就需要使用参数化来实现这种动态的数值变化。
参数化是指在脚本中使用参数来替代固定的数值或字符串。LoadRunner提供了多种参数化的方式,包括数据文件参数化、日期/时间参数化、随机数参数化等。通过参数化,可以使虚拟用户的行为更接近于真实用户,从而更好地模拟系统的真实负载。
另外,条件逻辑也是LoadRunner中的重要功能之一。在实际的用户行为中,往往需要根据不同的情况来执行不同的操作,这就需要用到条件逻辑。LoadRunner提供了一些内置的函数和操作符来实现条件逻辑,比如if条件语句、switch语句等。通过条件逻辑,可以模拟用户在不同情况下的不同行为,从而更加准确地测试系统的性能。
接下来,我们将分别介绍LoadRunner中参数化和条件逻辑的使用方法,以及一些注意事项和最佳实践。
一、参数化的使用方法
1. 数据文件参数化
在LoadRunner中,可以使用数据文件来对请求中的参数进行参数化。数据文件可以是文本文件、Excel文件等。在脚本中,可以使用
lr_paramarr_load函数来加载数据文件,并使用lr_paramarr_idx函
loadrunner参数详细解释
51Testing 软件测试论坛 » [LoadRunner] » 关于LoadRunner 参数的详细解释(自己看的)
[转贴] 关于LoadRunner 参数的详细解释(自己看的)
1# 大 中 小 发表于 2010-6-18 10:05 只看该作者
关于LoadRunner 参数的详细解释(自己看的)
通过创建表方式和数据向导方式都可以成功创建数据文件,操作员可以随意选择自己习惯的方式。总之,能坚守数据文件放数据的原则,就不会出问题了。
当回到“参数属性页面”中后,发现数据已经准备好了,而且原来灰色的区域目前也可以选择了。
“选择下一行”共有下面几个选项:
Sequential :
按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取。
Random :
任意选择。但是在每一次迭代中,将不发生变化。
Unique :
唯一的数。当使用该选项时,需要保证准备的数据文件中有足够的数据。比如要做20个虚拟用户,每个用户要进行5次迭代,第一个用户在5次迭代中分别使用数据文件中的数据1~数据5,第二个用户在5次迭代中分别使用数据文件中的数据6~数据10,类推以后20个用户将使用到100个数据。那么必须保证准备的数据文件中有100个以上的数据,否则运行时会出错。
Same line as 某个参数:
和前面定义的参数取同行的记录。通常用在有关联性的数据上面。比如当我做登录密码的参数化时,由于它和UserID 是有关联的,所以会用到这种选择方式。
“更新值的时间”共有下面几个选项:
Each iteration :
如何使用Loadrunner进行参数化设置
LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值,这个过程叫做参数化。
以下为参数化过程:
参数化过程比较简单,参数化时复杂的是对参数属性的设置。主要是以下两个属性的组合。
select next row 中有三个选项: Sequential(顺序读取)、Random(随机读取)、Unique (唯一)
update the value 中也有三个选项: Each Occurrence(每次遇到 )、 Each iteration(每次迭代 )、 Once(一直 )
这两个属性可以有九种组合方式,每种方式都不一样。接下来我们就用一个小实例来验证一下每种取值方式的效果。
录制一个lr自带实例WebTours的定单脚本。脚本中将出发城市与到达城市均参数化一下。参数化后还需做个关联(这个就重点说了)保证回放脚本成功。
设置10个用户并发持续加载的场景(参数文件中有10个数据),用默认设置均可。即每15秒加载两个用户,持续时间为5分钟,每30秒停止5个用户。
然后并发跑脚本。
以下为9种组合的测试结果:
(1)sequential Once
十个用户每个用户取值均一样,,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取得第一个参数。
第二个用户也执行了5次迭代,每次迭代均取的第一个参数。
第三个。。第四个。等等十个用户均一样。
(2)unique once
Load_Runner_使用说明
Load Runner 使用说明
一、组件:
(一) VuGen:用于捕获最终用户业务流程和创建怎动化性能测试脚本。
1. 录制脚本:
(1) 集合点Rendezvous
(2) 验证点Check Point:文本验证点Text Check、图片验证点Image Check
(3) 事务Transaction:事务开始Start Transaction、事务结束End Transaction
(4) 注释与消息Comment & Message:/***/
2. 增强并编辑Vuser脚本
(1) 参数化:
在Select next now中的参数:Sequential顺序、Random随机、Unique唯一
在Update value on 参数:Each iteration每次迭代、Each occurrence每次出现、Once 一次
(2) 从数据库中导入数据
3. 配置动行时设置Runtime settings(运行时设置)
(1) Number of Iterations:迭代次数
(2) 在Preferences中的Enable image and text check在脚本中添
加验证点时必须选中。
4. 在独立模式下运行Vuser脚本
5. 集成Vuser脚本
(二) Controller:用于组织、驱动、管理和监控负载测试。
1. 创建方案
(1) 创建手动方案
(2) 创建百分比模式方案
(3) 创建面向目标的方案
2. 计划方案
(1) 开始时间
(2) 方案运行设置:加压Ramp Up、持续时间Duration、减压Ramp Dowm
Loadrunner 参数化_迭代参数说明
Loadrunner参数化策略
测试小组齐国杰
使用工具:Loadrunner 8.1试用版
引子
近日没有具体的项目做,就总去泡论坛,发现有的网友会问一些参数化的问题,回答他们的问题时,突然发现自己也是一知半解,因此写了三个实验脚本,目的是彻底搞清楚参数化的做法以及参数化策略的疑问。
流程
参数化要做一些准备,主要是参数化数据的准备,例如TXT 文本、EXCEL表格以及数据库中的表都可以作为参数的数据集载体,而且LR都是支持的。具体的参数化流程如下:
1、录制脚本
2、准备参数的数据集(也可以不准备,让LR自己生成
固定格式参数)
3、把对应的变量参数化
4、选择对应的参数化策略
具体的操作请查询LR帮助手册
例子
下面我来介绍几个例子,例子统一使用try_params.txt做参数数据集,txt内容如下:
aaa bbb
a1 b1
a2 b2
……
a30 b30
脚本一:
Action()
{
char *a = "{aaa}"; //获得参数赋值给a
char *b = "{bbb}";//获得参数赋值给b
lr_log_message("%s,%s,%s,",lr_eval_string
(a),lr_eval_string (b),ctime(&t));//打印结果
return 0;
}
运行时设置:设置action的迭代次数为30(runtime-setting的Run Logic里)
回放结果:
备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
脚本二:
Action()
{
int i; //循环种子
LoadRunner参数化
1.1参数化
1.选中用户名,右击– Relace with a Parameter
2.弹出下图窗体,输入name,点击P roperties…
3.弹出下图窗体,点击Create Table
4.弹出确认框,确认后,显示如下图,点击E dit with Notepad…
5.弹出记事本,可编辑需参数化内容,添加多个用户名
添加之后,效果如图
用户名、密码:
点击Add Column,弹出Add new column窗体,输入列名,进行步骤5参数值编辑操作
添加效果图:
1.2Parameter Properties(参数属性)
1.2.1S elect next row(获取数据方式)、
1.2.2U pdate value on(参数值改变时间)
注:对Each Iteration而言,一个VU执行时,每次迭代时更新参数的值,如果在一个迭代
过程中某参数出现了多次,参数取相同的值;而对Each Occurrence而言,如果在一个迭代过程中某参数出现了多次,每次都取不同的之
1.2.3When out of values(数据量不能支持迭代和Unique要求的数据量时,
指示LoadRunner的处理方法)
When out of values选项只在Select next row设置为Unique时才有效,当数据池中的数据量不能支持迭代和Unique要求的数据量时,可以通过设置该选项的值指示LoadRunner的处理方法:设置为Abort VUser,则遇到这种情况,VU停止运行;设置为Continue in a cyclic manner,则遇到这种情况,重新从数据池的第一个取值开始循环;设置为Continue with last value,则遇到这种情况,所有不足的取值都用最后一个取值来代替
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
loadrunner中十六进制报文参数化方法
2012年7月5日
10:10 熊瑞
在做tuxedo和socket脚本的过程中,经常会碰到发送的报文是十六进制字符串。而
往往我们又需要针对十六进制报文中的某些数据进行参数化。当然,直接针对十六进制报文,选中后右键参数化是不会被识别的。需要经过相应的转化后才能参数化成功。
首先,针对一串发送报文,需要了解报文体的结构,具体要了解的是:发送报文长度
多少、十六进制报文对应的可通俗识别的十进制或者字符串显示、每一个可识别字符串在
报文中的偏移位置。当然熟悉报文体中字段的内容是需要参考接口文档。
具体例子如下,下面是一段原始报文:
0: 00 D1 35 44 41 31 46 35 35 36 43 33 42 32 44 30 __________*?DA1F556C3B2D0
10: 33 39 30 30 30 30 30 30 30 30 30 30 30 30 30 30 __________3900000000000000
20: 31 31 31 31 31 31 31 31 30 31 31 30 30 30 30 63 __________111111*********c
30: 6F 70 00 00 00 00 00 00 30 00 00 30 00 00 00 00 __________op******0**0****
40: 31 31 30 00 00 00 00 00 00 00 00 00 00 00 00 00 __________110*************
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 __________****************
60: 00 00 00 00 00 00 00 00 00 00 00 31 30 30 31 37 __________***********10017
70: 00 00 00 00 37 37 39 31 37 32 35 36 39 32 00 00 __________****7791725692**
80: 39 37 37 34 00 00 00 00 00 00 00 00 00 00 00 00 __________9774************
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 32 30 31 __________*************201
a0: 32 30 36 32 30 00 00 00 00 00 00 00 00 00 00 00 __________20620***********
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 __________****************
c0: 10 31 30 32 39 36 66 30 00 32 30 31 30 30 34 30 __________*10296f0*2010040
d0: 32 __________2
如上所示,十六进制报文一般是每16位是一行,最左边的用黄色标注的0: 10:其实就是16的累加,也可以理解是一个偏移量,当然,和我们具体要参数化的报文中的字段的偏移量是不同的,那个是需要自己进行计算;用绿色标注的__________只是开发人员在log输出中为了标识而打印出来的,可不用关注。用红色标注的地方,如*?DA1F556C3B2D0,这是我们看到的第一行十六进制串对应的字符串,这一段也是开发人员在log输出中伴随
打印出来,也就是我们要了解的地方,还有一点需要说明的是,中间这段十六进制码是右
边红色标记的字符串的ASC码的十六进制。(这段只是对上述报文做一个详述,各位看官
在自己实际开发的报文的过程中,可能与此不同,具体问题具体对待)
当然,我们在实际报文发送的过程中,仅仅只是需要16进制串而已,即一下一段:
00 D1 35 44 41 31 46 35 35 36 43 33 42 32 44 30
33 39 30 30 30 30 30 30 30 30 30 30 30 30 30 30
31 31 31 31 31 31 31 31 30 31 31 30 30 30 30 63
6F 70 00 00 00 00 00 00 30 00 00 30 00 00 00 00
31 31 30 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 31 30 30 31 37
00 00 00 00 37 37 39 31 37 32 35 36 39 32 00 00
39 37 37 34 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 32 30 31
32 30 36 32 30 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
10 31 30 32 39 36 66 30 00 32 30 31 30 30 34 30
32
针对这一段报文,我们需要使用编辑工具进行相应处理,因为loadrunner中使用相
关函数时,都是在处理字符串,所以,我们需要把这段报文转化成十六进制串,转换后如下:
\x00\xD1\x35\x44\x41\x31\x46\x35\x35\x36\x43\x33\x42\x32\x44\x30