loadruner知识点小结
- 1、Download Filters功能 帮助在回放脚本的时候对某些特定的访问进行屏蔽,解决页面读取中跨服务器带来数据影响的问题。
- 过滤规则中有3中策略,即URL、Host、HostSfx 区别于:
- URL是对一个固定地址的,无法通配,只能写一个固定的地址。
- Host是主机,你写一个主机名就可以过滤所有这个主机名下的内容。
- HostSuffix是加强,只需要写服务器的域名后端,就能过滤所有前面的内容。
- eg:
- 如果写URL过滤为:http://bbs.51testing.com,那么在LR中直接读取这个地址不成功
- 如果写Host为bbs.51testing.com,那么访问这个地址下的所有东西不会成功
- 如果写hostsfx为51testing.com,那么访问
- 2、Data Format Extensions:指是否在回放脚本的过程中对返回的数据包进行DFE格式转化,如果需要使用新的关联函数该功能选项需要打开。
- 3、参数化的步骤: 确定需要参数化的内容->选中需要参数化的内容->使用右键菜单中的Replace with a Parameter 将选中内容替换为参数->Parameter List中设置参数值和参数更新方式->通过回放后的日志验证参数取值
- 4、lr_eval_string("{参数名}");
- 该函数可以从参数中取得对应的值,并且转化成一个字符串,可以通过lr_output_message()函数输出到日志中。
- eg:lr_output_message(lr_eval_string("{param}"));
- 5、
- lr_save_datetime("%Y-%m%d %H:%M:%S",DATE_NOW+TIME_NOW,"datetimes");
- lr_save_datetime("%Y-%m-%d",DATE_NOW,"times");
- 6、User Defined Function可以通过lr_load_dll()函数来实现调用外部dll扩展脚本的功能。
- lr_load _dll("user32.dll");
- eg: lr_load_all("user32.dll");
- messageBoxA(NULL,"This is the message body","mesage_caption",0);
- 首先创建的dll必须遵守一下规则: -declspec(dllexport)char *<functionName>(char *,char *)
- 7、lr_convert_string_encoding函数进行编码转换。
- 参数并不是能写在LoadRunner函数中的任意位置,如果想要实现对无法直接参数化的部分进行参数化,
- Web_link()函数中的step部分可以这样写:
- web_link(lr_eval_string("{param}"),"TEXT={param}",LAST);
- lr_eval_string("{param}+{param}={param2}");
- *获得一个字符串的第一个字母的ASCII码可以写成:
- lr_eval_string("{param}")[0];
- 这种写法会返回param参数中的第一个字母的ASCII码
- 8、 参数的定义方法:
- lr_save_string("http://www.51testing.com","website");
- web_url("51testing","URL={website}",LAST);
- 可以使用lr_free_parameter()将这个参数的值释放掉,减少对内存的占用。
- 9、 可以使用lr_save_int()和lr_save_datetime()写入数字和日期的参数。
- 10、 使用lr_param_sprintf()函数把一定格式写成参数:
- eg: lr_param_sprintf("LOG_NAME_PARAM","log_%d.%s",index,suffix,1000);
- 11、 为一个参数中存放的数字做加1操作,那么可以使用这个函数: lr_param_increment();
- 12、 定义并释放变量 Buf=(char*)malloc(1024*sizeof(char))); free(Buf);
- 13、 参数数组
- lr_paramarr_idx()
- lr_paramarr_len()
- lr_paramarr_random()
- 参数数组必须满足以下两个条件:
- 参数必须都是以相同的名字开头的,后接下画线加数字的方式顺序赋值。
- 参数数组必须有一个“参数名_count”的参数来记录数组的长度。
- eg:
- lr_save_string("www.google.com","website_1");
- lr_save_string("www.baidu.com","website_2");
- lr_save_string("www.163.com","website_3");
- lr_save_string("www.sina.com","website_4");
- lr_save_string("4","website_count");//不能写错数据
- 14、取参数数组值
- char * siteval; siteval=lr_paramarr_idx("website",2);
- 等价于: lr_eval_string("{website_2}");
- 15、取参数数组的长度
- lr_paramarr_len():获取整个参数数组的长度。
- int arrsize; arrsize=lr_paramarr_len("website"); 等价于: lr_eval_string("{website_count}")可以得到相同的结果。
- 16、随机读取参数数组中的一个值 char * siteval; siteval=lr_paramarr_random("website"); (谨慎使用,有些情况无法随机)
- 17、遍历参数数组 int arrid; for(arrid;arrid<=lr_paramarr_len("website");arrid++) { lr_output_message(lr_paramarr_idx("website",arrid)); }
loadruner知识点小结的更多相关文章
- C++重要知识点小结---3
C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...
- C++重要知识点小结---2
C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...
- React及Nextjs相关知识点小结
React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...
- 【SpringBoot MQ 系列】RabbitMq 核心知识点小结
[MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 ...
- SpringBoot 系列教程之事务隔离级别知识点小结
SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...
- disruptor笔记之四:事件消费知识点小结
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- promise知识点小结
断断续续学习es6也有一段时间了,趁着开学空闲对知识点做一些小结. 为什么使用promise 谈到Promise,我们知道,这是社区较理想的异步编程解决方案.想要掌握promise,我们首先要知道其提 ...
- shell知识点小结
目录 引言 shell中的数组 数组的定义 数组的使用 实际的例子 shell中大小的比较 shell中的括号 shell中函数的定义 杂项知识点 字符串转数组 常用判断标志 linux后台运行相关 ...
- Vuejs技术栈知识点小结
前言 上家公司的项目主要是使用jQuery和Angular1,然后自己学了React,没想到来到这家公司突然开始做vue,不过vue还是挺容易上手的.下面是vue技术栈的一些总结,都是来自官网,主要是 ...
随机推荐
- 9.nodejs权威指南--Socket.IO
1. Socket.IO 1.1 服务器 var http = require('http'); var sio = require('socket.io'); var fs = require('f ...
- 8.js模式-状态模式
1. 状态模式 var offLightState = function(light){ this.light = light; } offLightState.prototype.buttonWas ...
- ePass.CreateFile
javascript和vbscript中没有结构体Struct,ePass的ActiveX对象中把各个参数都展开了,官方文档只给出了对应的代码,没有给出相应的数字,示例代码中却都是数字,其VC代码中有 ...
- Pooled Allocation(池式分配)实例——Keil 内存管理
引言:说到动态申请(Dynamic Allocation)内存的好处,学过C/C++的人可能都有体会.运行时的灵活申请自然要比编码时的猜测好的多.而在内存受限情况下这种灵活性又有特别的好处--能让我们 ...
- C#string类;math类;datetime类
String类: .Length字符的长度 .Trim()去掉开头以及结尾的空格 .TrimStart()去掉字符串开头的空格 .TrimEnd()去掉字符串后面的空格 .ToUpper()全 ...
- 【linux】nohup运行守护进程
来源:http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html nohup 命令 用途:不挂断地运行命令. 语法:nohup ...
- 避免产生僵尸进程的N种方法(zombie process)
http://blog.csdn.net/duyiwuer2009/article/details/7964795 认识僵尸进程 1.如果父进程先退出 子进程自动被 init 进程收养,不会产生僵尸进 ...
- hdu2108(判断凸多边形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2108 题意: 给出一个多边形的所有顶点,判断是不是凸多边形: 思路: 判断凸多边形的方法比较多,如:若 ...
- TIME_WAIT连接过多解决办法
问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放.看了一下18888,当时吓到了. 现象: 1.外部机器不能正常连接S ...
- Ionic2 Tutorial
build your first app Now that you have Ionic and its dependencies installed, you can build your firs ...