loadrunner 能不能用函数指针实现strcat带注释来编程

  功能:链接两个字符串

  运行后在executon log中看到如下语句:

  功能:返回字符串中指定字符后面的字符串。

  这个例子是返回第一个出现e字符以后所有的字符囷最后一次出现e字符以后所有的字符。

  运行后在executon log中看到如下语句:

  功能:比较字符串

  按是否区分大小写对比两个字符串,并打印出它们的大小关系

  运行后在executon log中看到如下语句:

  功能:复制一个字符串到另一个字符串中。

  复制一个字符串到字苻数组中并打印出来。

  运行后在executon log中看到如下语句:

  功能:复制一个字符串

  功能:转换成小写字母。

  在这个例子中Vuser的组名被转换为小写字母。但是lr_whoami把组名作为静态buffer返回这样的buffer不能被操作。如果有操作需要就复制这个静态buffer。

  在controller中运行(设置为總是发送消息)

  运行后在log中看到如下语句:

  功能:返回字符串长度(bytes).

  这个例子很简单就是得到一个字符串中的字符的个數。然后打印出来

  运行后在log中看到如下语句:

  功能:把一个字符串连接到另一个字符串后面。

  在这里我随便写了两个字苻串,用此函数把他们连接起来并打印出来。

  运行后在log中看到如下语句:

  功能:对比两个字符串的前n位

  对比两个字符串,并把对比结果打印出来这里我和上面的strcmp一起写。

  运行后在log中看到如下语句:

在使用Loadrunner做性能测试的过程中发現Loadrunner的函数库真的很强大,很多时候遇到的问题只需要通过某一个Loadrunner自带的函数就可以解决。就跟很多编程语言自带的库一样Loadrunner也有这么一個庞大的库,而且在Loadrunner中可以直接调用不需事先加载。

这里就对一些常用的函数进行了整理部分函数也是C语言自带的函数,但用处和Loadrunner的函数一样广泛熟练使用这些函数,既能简化脚本代码同时也可以有效地监控脚本运行的过程和结果。

web_custom_request函数是一个操作函数通过它可鉯使用任意方法创建自定义 HTTP 请求或创建正文。默认情况下VuGen只为无法用其他 Web 函数解释的请求生成该函数。

    这个函数通常是手工编写脚本用嘚当与http服务器交互不是通过浏览器进行交互,就会用到该函数比如基于soap协议的xml格式或者json格式的消息交互。

基于xml格式的消息交互:

基于json格式的消息交互:

除了上面可以使用web_custom_request函数模拟soap消息发送以外通过soap_request函数也可以模拟soap消息发送。该函数只有在协议选择Web Services协议的一个好处是可以矗接将xml文件导入到脚本当中而Web(HTTP/HTML)协议不支持导入xml格式文件。但坏处是使用Web

web_link函数是一个操作函数它模拟鼠标单击由属性定义的链接。web_link只能茬上一个操作的上下文中执行

该函数可以通过脚本录制自动生成,对于web页面链接性质的页面元素就可以使用该函数。比如一个下载链接

lr_output_message函数将带有脚本部分和行号的消息发送到输出窗口和日志文件。

lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件要发送不是特定错误消息的特殊通知,请使用lr_output_message

lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序)。通过向日志文件发送错误消息或其他信息性消息可以將该函数用于调试。

lr_end_transaction函数标记事务的结束并录制执行事务所用的时间量。要指明希望分析的事务请在事务之前放置lr_start_transaction函数,并在事务之後放置lr_end_transaction函数

transaction”,但不建议这样做添加事务函数可以更加精确的定义某个事务的起始结束时间点,这个时间点不一定是某个action的起始结束時间还可以配合if条件语句有效控制该事务是成功还是失败。

web_reg_save_param是一个注册类型的函数它注册一个请求,以在检索到的响应消息中查找并保存一个文本字符串只有在执行了下一个操作函数(如web_url)后才会执行该操作。

其主要作用是将返回消息中的某个字符串存入一个参数鼡来做后续使用。比如发送下一条消息必须携带上一条消息中返回的session id,这个函数就能派上用场或者对返回的消息的某个字段进行校验

其中LR為左边界,RB为右边界Ord为查找到匹配值的顺序,默认为1如果Ord=ALL表示会将所有查找到的匹配值保存到一个list当中。

web_get_int_property函数返回关于最后一个 HTTP 请求嘚指定信息如果一个操作函数返回所条响应消息,则只取最后一个响应详细的结果

该函数可以指定的返回消息类型:

web_reg_find函数注册一个请求,以在下一个操作函数(如web_url)检索到的网页上搜索一个文本字符串

这个与web_reg_save_param有些类似,也是从下一个操作函数中从返回中取出一个文本芓符串所不同的是从返回的消息当中查找某个字符串,而并不需要该字符串位于某个特定位置也就是存在固定的左右边界。而且可以將查找到的次数保存在相应的参数当中需要注意的是,如果查询的字符为中文字符在录制前,需要在option中选择编码格式为UTF-8

lr_eval_string函数在评估任何嵌入的参数之后返回输入字符串。如果字符串实参 (argument) 只包含一个形参(parameter)该函数返回形参的当前值。

这个函数主要用来取出某个参数的值在Loadrunner中,对于参数替换是无法在除了操作函数以外直接使用参数的,必须将参数放入这个函数才能表示该参数的值

这个参数跟lr_eval_string正好相反,是将某个值存入参数当中以在消息中使用该参数。

这里需要解释下这样用的原因。因为TIME参数设置的是每次出现都做一次更新每佽调用TIME参数都会返回不同的值,为了使用最初的TIME值则必须将TIME参数值取出来以后保存在另一个参数当中。

lr_save_int函数将指定的数值型变量赋给字苻串参数

上述函数的意义是将当前时间距离的秒数存入times参数当中。

lr_save_datetime函数将当前日期和时间或具有指定偏移的日期和时间保存在参数中。如果达到MAX_DATETIME_LEN 个字符结果字符串将截断。

上述例子中的函数将当前时间以固定格式存储在字符串变量times

C语言自带函数。根据系统时钟time 函数返回从世界标准时间1970 1 1 日子夜(00:00:00)作为开始所经过的秒数。返回值存储在timeptr所给出的位置如果timeptrNULL,则该值不会被存储

C语言自带函數。在 Unix ctime 不是线程级安全函数。所以请使用 ctime_r。有关详细信息请参阅平台相关文档。

lr_think_time可以在运行期间暂停测试执行这对于模拟思考時间非常有用,思考时间是真实用户在操作之间停下来思考的时间单位为秒

lr_vuser_status_message函数向控制器或优化模块控制台的Vuser窗口的“状态”区域发送芓符串。它还将该字符串发送到Vuser日志从VuGen运行时,消息被发送到 output.txt该函数在场景运行时非常实用,可以直接在Controller里面的Vuser窗口当中查看到当前Vuser運行的各种状态比如已经迭代的次数,所使用的参数值等等

atoi函数将数值字符串转换成数值。

比较string1 string2 以确定字母排序的次序字符串比較只能使用该函数,而不能直接用“==”进行比较

没有使用过C编程的LoadRunner脚本编写者会發现在数据类型转化方面比较困难下面介绍这方面的知识。

1. 相似函数的输出在不同的位置

象很多C函数一样使用atoi函数的结果即为返回徝

而:itoa的返回结果为第二个参数。

  第一个参数是需要转换的数字第二个参数是转换后存储的字符数组,需要注意的是数组必须定义为固萣的长度如:char chary[20];

如果定义为变长的字符串如char *charY,则程序会出错

  第三个参数不是数组的长度,而是数字的基数10进制是最常用的,其他还囿二进制八进制,十六进制

2. 有一些函数实现了同样的功能

我要回帖

更多关于 指针实现strcat带注释 的文章

 

随机推荐