性能测试LoadRunner |
您所在的位置:网站首页 › loadrunner测试app性能 › 性能测试LoadRunner |
前面已经讲述了场景设计的一些基础知识,鉴于场景设计在整个性能测试过程中的重要性,在实际使用过程中也当然存在很多使用技巧或者说是一些高级使用方法。通过这些技巧或高级使用方法可以帮助我们更好地进行场景设计或监控场景执行的情况。 本章主要对场景设计过程中常用的一些技巧进行讲解,主要涉及的内容有: 1、集合点设置 2 、 IP欺骗技术 3、负载均衡技术 4 、执行路径转换 5、在LoadRunner中使用功能测试脚本 一:集合点 首先需要明确在性能测试过程中为什么要进行集合点设置,在LoadRunner测试过程中,其实并不能保证所有的Vuser真的在同一时刻进行操作,这样就达不到并发测试的目的,故需要使用到集合点技术,集合点的意思是如果在一个操作之前设置了一个集合点,LoadRunner会等待所有的Vuser都准备好要执行该功能时才开始执行,其强调的是所有的Vuser都已准备好了,如果只是部分Vuser准备好了,该功能还是不会被执行。 1、集合点设置 选择Scenario→Rendezvous,如图7-1所示。 图7-1 设置集合点操作接下来会弹出集合点信息对话框,如图7-2所示。 图7-2 集合点设置图7-3 集合点策略设置第一项:表示当所有用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。 第二项:表示当前正在运行用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。 第三项:表示当X个用户到达集合点时,开始释放等待的用户并继续执行场景。 其中还有一项Timeout between Vusers,就30秒来说,当第一个用户到达集合点后,再等待30秒,如果在30秒内到达的用户数达到指定的数量,就开始继续执行场景。如果在30秒内还没有达到指定的用户数量,就不再等待,开始释放等待的用户并继续执行场景,如图7-4所示。 图7-4 集合点超时原理图7-4 集合点超时原理 图7-5 手动释放Vuser2、集合点与事务的关系 在进行并发测试时需要设置集点,同时为了获取事务的响应时间必须添加开始和结束事务,那么集合点设置在开始事务代码后面还是在开始事务之前呢?即两者之间的关系如何? 第一种情况,集合点设置在开始事务代码后面,其运行的过程中图如图7-6所示。 图7-6 集合点设置在开始事务代码后面从上图中可以看到当虚拟用户运行到开始事务起点时,事务就开始统计时间,但仔细研究发现,当第一个虚拟用户到达集合点时,后面的虚拟用户还没有到达集合点,这样第一个虚拟用户就不得不等其它的虚拟用户到达集合点后才能接着运行,但虚拟用户到达集合点之前事务一直在统计时间,并没有暂停,那么这个等待的时间其实根本就不是事务的真实时间,真实的事务响应时间应该除去虚拟用户之间的等待时间。 第二种情况集合点设置在开始事务代码前面,如图7-7所示。 图7-7 集合点设置在开始事务代码前面从上图中可以看出,虽然需要等待所有的虚拟用户都到达集合点后才开始释放虚拟用户,但是此时事务并没有开始计时,只有运行到开始事务代码时才会开始计时,这样统计出来的时间值就不包含虚拟用户因为集合点的原因所浪费的等待时间。 所以综上描述,一般将集合点设置在开始事务代码之前。 二:IP欺骗技术 在场景运行时,每台负载发生器计算机上的Vuser都使用其计算机的固定IP地址。这样就不能模拟用户使用不同计算机的真实情况。 应用程序服务器和网络设备用IP地址标识客户端。应用程序服务器经常缓存来自同一台计算机的客户端信息。网络路由器则尝试缓存源信息和目标信息来优化吞吐量。如果许多用户使用同一个IP地址,服务器和路由器都将尝试进行优化处理。由于同一台负载发生器计算机上的Vuser具有相同的IP地址,因此服务器和路由器优化不反映真实情况。 使用LoadRunner的多IP地址功能,可以用许多IP地址来标识在一台计算机上运行的多个Vuser。这样,服务器和路由器将认为Vuser来自不同的计算机,因此测试环境更加真实。 当然LoadRunner在设计的时候就想到这个问题了,这就是IP欺骗技术。但是在使用IP欺骗时需要注意IP Spoofer要在连接Load Generator之前启用,并且各负载发生器计算机必须使用固定IP,不能使用动态IP(即DHCP)。 1、 IP Spoofer设置 1)点击“开始”菜单→“所有程序”→Mercury LoadRunner→Tools→IP Wizard,弹出IP Wizard配置对话框,如图7-8所示。 图7-8 IP Wizard设置首页2)在这里选择一种方式进行设置,如果以前保存过这类文件,可以选择“Load Previous settings from(从文件中加载以前的设置)”,然后选择该文件即可。 3)也可以选择“Create new settings(创建一个新的设置)”。 4)点击“下一步”按钮。如果计算机中安装了多个网卡,那么要选择用于这些IP地址的网卡,然后点击“下一步”按钮,在弹出的对话框中设置服务器的IP地址,如图7-9所示。 图7-9 设置服务器IP地址5)点击“下一步”按钮将看到该计算机的IP地址列表。点击“添加”按钮可以定义地址范围,如图7-10所示。 图7-10 设置虚拟IP和子网掩码6)在该对话框中选择计算机的IP地址类型。指定要创建的IP地址数。选中“Verify that new IP addresses are not already(验证新的IP地址未被使用)”复选框,以指示IP向导对新地址进行检查,LoadRunner会自动检查新添加的IP在同一网段中是否已被使用,如果IP已经被使用,那么这些IP将不会被添加进来,只有未被使用的IP地址才会被添加进来,点击“确定”按钮继续。 7)完成之后,IP欺骗向导会显示出IP变更统计的对话框,如图7-11所示。 图7-11 IP变更统计在该对话框中,可以点击 按钮将本次添加的IP保存成“.ips”文件,下次再使用时就可以直接加载此文件。 完成之后,系统会提示重启计算机,重启计算机后,设置的IP欺骗有效,重启后为了确认虚拟IP是否都生效,可以在“开始”→“运行”,输入“cmd”,在弹出的命令窗口输入“ipconfig/all”,就能看到生效的所有IP。 还可以使用lr_get_vuser_ip函数来得到当前虚拟用户的IP地址,在脚本中加入下面的代码即可。 char *ip; ip = lr_get_vuser_ip(); if(ip) lr_output_message("The IP address is %s",ip); else lr_output_message("IP spoofing disabled"); 场景运行时,如果虚拟IP生效的话,打开每个Vuser的日志,就可以看见他们各自的IP。 而在实际使用过程中,经常发现,客户端和服务器之间存在一个路由器,出现这种情况怎么办呢?其实在使用IP欺骗技术时,服务器需要将这些地址添加到路由表中,以识别返回客户端的路由。如果服务器和客户端具有相同的子网掩码、IP类和网络,那么不需要修改服务器的路由表。如果客户端和服务器之间有路由器,那么必须手动让服务器将这些地址添加到路由表中,这样服务器才能识别经过该路由器的路径。 在设置完成IP欺骗的最后一步,不要重启计算机,此时在临时文件夹Temp里生成两个文件,一个是用于UNIX操作系统的unix_routing.sh文件,一个是用于Windows操作系统的nt_routing.bat文件。两个文件的内容如下: nt_routing.bat文件: REM This is a bat file to add IP addresses to the routing table of a server REM Replace [CLIENT_IP] with the IP of this machine (Load Generator) that the server already recognizes REM This script should be executed on the server machine route ADD 192.168.14.22 MASK 255.255.255.255 [CLIENT_IP] METRIC 1 route ADD 192.168.14.23 MASK 255.255.255.255 [CLIENT_IP] METRIC 1 route ADD 192.168.14.25 MASK 255.255.255.255 [CLIENT_IP] METRIC 1 unix_routing.sh文件: # Bourne shell script to add IP addresses to the routing table of a server # To run replace [CLIENT_IP] with the IP of this machine (Load Generator) that the server already recognizes # Then chmod +x unix_routing.sh # and finally execute this script on the server #!/bin/sh route add 192.168.14.22 [CLIENT_IP] 255.255.255.0 route add 192.168.14.23 [CLIENT_IP] 255.255.255.0 route add 192.168.14.25 [CLIENT_IP] 255.255.255.0 要更新服务器路由表,必须对这两个文件进行一定的修改。 1)将[CLIENT_IP]用LoadRunner机器的IP地址替换。假设LoadRunner机器的IP地址为192.168.14.26。 2)修改的文件必须在服务器上运行该文件,Windows操作系统使用nt_routing.bat文件,UNIX操作系统使用unix_routing.sh文件。 修改后的两个文件内容如下: nt_routing.bat文件: REM This is a bat file to add IP addresses to the routing table of a server REM Replace [CLIENT_IP] with the IP of this machine (Load Generator) that the server already recognizes REM This script should be executed on the server machine route ADD 192.168.14.22 MASK 255.255.255.255 192.168.14.25 METRIC 1 route ADD 192.168.14.23 MASK 255.255.255.255 192.168.14.25 METRIC 1 route ADD 192.168.14.25 MASK 255.255.255.255 192.168.14.25 METRIC 1 unix_routing.sh文件: # Bourne shell script to add IP addresses to the routing table of a server # To run replace [CLIENT_IP] with the IP of this machine (Load Generator) that the server already recognizes # Then chmod +x unix_routing.sh # and finally execute this script on the server #!/bin/sh route add 192.168.14.22 192.168.14.25 255.255.255.0 route add 192.168.14.23 192.168.14.25 255.255.255.0 route add 192.168.14.25 192.168.14.25 255.255.255.0 到这里跨网段IP欺骗技术已经完成,重启计算机,IP欺骗将生效。 2、 Controller中启动IP Spoofer 设置好IP Spoofer后,必须在Controller中启动IP Spoofer,选择Scenario→Enable IP Spoofer,启动IP Spoofer策略,如图7-12所示。 图7-12 启动IP欺骗策略当启动IP Spoofer后,在Run选项卡的右下角会看到IP Spoofer的标记,如图7-13所示。 图7-13 IP Spoofer启动标记启动多IP地址模式后,可以在专家模式中对多IP地址进行全局设置。首先,选择Tools→Expert Mode来启动专家模式。接下来选择Tools→Options→General选项卡,来设置多IP地址模式分配IP地址的情况,如图7-14所示。 图7-14 多IP地址模式下IP地址分配设置可以选择按进程或线程分配IP地址,按线程分配会导致场景中存在更多的IP地址范围。 选择Scenario→Load Generators,设置Vuser生成器,将虚拟IP地址添加进去,并连通(点击Connect按钮,每个IP状态由Down变为Ready),如图7-15所示。 当连接成功后,Vuser生成器会在工具栏中显示,如图7-16所示。 在使用完成之后,一定要记得释放IP地址,在IP Wizard设置首页,如图7-8所示。选择Restore original set项,进行IP地址释放,重启计算机即可。 图7-15 Vuser生成器设置图7-16 连接成功标识 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |