loadrunner-ip欺骗设置教程_实例补充.doc_第1页
loadrunner-ip欺骗设置教程_实例补充.doc_第2页
loadrunner-ip欺骗设置教程_实例补充.doc_第3页
loadrunner-ip欺骗设置教程_实例补充.doc_第4页
loadrunner-ip欺骗设置教程_实例补充.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本教程由 大漠飞鹰 编写 ,帖子名称为“LRIP欺骗设置和有效性验证”,相应的地址是:/viewthread.php?tid=74333&pid=506471&page=1&extra=page%3D3#pid506471我结合自己这几天实际测试中遇到的疑惑和相应的解决的方法对其进行举例说明和增加一些自己的补充,供大家相互学习。颜色说明:补充内容为青绿色背景Ip欺骗的相关帖子关于IP欺骗的问题:/?49159/action_viewspace_itemid_859.html设置IP欺骗的原因1、 当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。2、 某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。多IP地址的设置IP地址的设置较为简单,可直接在本地连接中增加IP,或者通过LR自带的工具“IP wizard”设置,当然也可以使用其它软件设置。唯一需要注意的就是注意设置的IP的有效性。“选项”中的IP设置 使用“选项”对话框中的“常规”选项卡,可以选择IP地址模式。只有在专家模式下操作 Controller 时,才显示该选项卡。 要设置常规专家模式设置,请执行下列操作: 1. 选择“工具”“选项”。将显示“选项”对话框。选择“常规”选项卡。 2. 选择多个 IP 地址模式。需要注意的是,这里的IP地址模式和运行时设置中的常规设置的不同,会导致IP欺骗失效。具体该怎么设置,这里就不讲了,很简单的东西。启用IP欺骗从 Controller 启用多个 IP 地址 定义多个 IP 地址后,您就可以设置一个选项,让 Controller 使用该功能。 要从 Controller 启用多个 IP 地址,请执行下列操作: 在 Controller“设计”视图中,选择“场景”“启用 IP 欺骗器”。 注意:必须在连接到负载生成器之前选择该选项。如果是在连接了负载生成器之后启动的,只需将负载生成器断开(disconnect)再连接(connect)就可以了。IP欺骗功能验证IP欺骗已经设置了,但是是不是有效呢?通常会有这样的疑问。下面我们通过一个简单的试验,来验证是否有效。在脚本的Action()部分增加如下代码:(根据自己的测试要求,我将这段代码放在init中)char * ip=lr_get_vuser_ip();if(ip)lr_vuser_status_message(The ip address is %s,ip);elselr_vuser_status_message(IP spoofing disabled);然后通过控制器设置并运行场景,在Controllers Vuser 窗口中,大家可以看到如下的结果:IP欺骗测试实例(补充内容)测试的起源是由帖子“winsocket协议下的IP欺骗报9017错误”开始的,帖子的地址是:/thread-74283-1-1.html问题:测试winsocket通信协议的两个服务器 通讯服务器和应用服务器 一个应用服务器可以和指定的(IP:Port)多个通讯服务器相连接 应用服务器之间会自动重连 创建连接的间隔是10秒 通讯服务器建立侦听 等待应用服务器的连接测试方法:使用IP欺骗进行测试 首先使用ip wizard在本机建立了几个IP 重启机器后IP生效 然后将之前录制的通讯服务器脚本中的port相应更改保存 使用vuser genorator回放成功 然后将脚本加入到场景 总是提示vuser_init.c(25): Error : Timeout expired while trying to accept connection. Error code : 9017 但有时可以连接成功 于是在vuser_init中添加 lrs_set_accept_timeout()函数 在lrs_create_socket中忽略9017错误 但还是出现连接不成功 报9017的错误 请各位指教初始化代码如下:vuser_init() lrs_startup(257); lrs_set_accept_timeout(180,0); while(lrs_create_socket(socket0, TCP, LocalHost=5500, Backlog=5, LrsLastArg)=9017); lrs_accept_connection(socket0, socket1); return(0);问题解决过程(有待优化)过程一:基于是录制的winsocket之间的通信,我将其中一个脚本在场景中运行,其generator为20,然后将另一个脚本在Virtual user generator中执行,执行的日志可能会出现下面这种情况: Virtual User Script startedStarting action vuser_init.vuser_init.c(14): lrs_startup(257)vuser_init.c(17): lrs_set_accept_timeout(240, 0)vuser_init.c(20): lrs_create_socket(socket1, TCP, .)vuser_init.c(20): Error : socket1 - Address already in use. Error code : 10048.我认为是和之前场景中运行的socket有相同的handler所致,于是在vuser_init()中开始先创建并关闭几个socket,改变socket handler的值。编译执行,不再出现10048错误。于是将脚本加入到场景中并使用generator为21执行此脚本。这时,20和21会出现同时运行的情况,尽管不是每次执行场景时都是这样。int handler1=0; vuser_init() lrs_startup(257); lrs_create_socket(socket0, TCP, LocalHost=6100, Backlog=5, LrsLastArg);lrs_close_socket(socket0);lrs_set_accept_timeout(240,0);lrs_create_socket(socket1, TCP, LocalHost=5200, Backlog=5, LrsLastArg); while(lrs_accept_connection(socket1, socket2)=9017);/获得socket1的handler并输出handler1 = lrs_get_socket_handler(socket1); lr_output_message(socket1 handler is %d, handler1); return 0;过程二:过程一让我的关注点放在了port上,于是我在运行的命令行窗口使用netstat a 命令来监视场景创建监听的情况。我在手动场景中只加入一个脚本,然后将通讯服务器的端口全部设置为5200,即lrs_create_socket(socket1, TCP, LocalHost=5200, Backlog=5, LrsLastArg); quantity设置为2 ,load generator 使用localhost(这里我没有指定quantity中运行脚本的generator,统一使用localhost,当然20和21是在generator列表里的)。然后执行场景,监视端口的侦听和连接情况,连接都成功了。过程二后的疑问:如果创建的是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论