zoukankan      html  css  js  c++  java
  • Web Performance Test : IP切换/IP欺骗

    译者前言

    本文翻译自<Visual Studio Performance Testing Quick Reference Guide 3.6> 有关于IP Switching的章节。<Visual Studio Performance Testing Quick Reference Guide>的最新版本可以从这里下载

    IP地址切换 – 工作机制解析
    每个代理(译者:指使用Visual Studio进行Load Test时,开启controller-agent模式下的agent)可分配最多达256个IP地址以供使用。测试开始时,代理服务在网卡上配置IP地址。测试运行时,新的连接循环地使用IP地址池中的地址。

    IP Switching最常见的用途是针对负载均衡器。负载均衡器通常根据IP地址,将请求路由到服务器集群中某个特定的Web服务器。所以,如果你有2个代理把负载加载到3台Web服务器,因为所有的流量是来自两个IP地址(每个代理一个IP),那么只有两个Web服务器将得到所有流量。 IP Switching提供了一种方法,使同一个代理能够产生来自多个IP地址的流量,使负载均衡器能够在整个集群中平衡负载。

    VSTT目前限制每个代理可以产生256个独立的IP地址。在大多数测试的情况下,这是足够多的地址。这种限制最可能会影响你的情况是,如果你正在运行的大型测试中,每一个用户必须拥有一个独立的IP地址,用于关联到诸如某种会话状态上。但这种情况并不常见。
    在VS 2008中,没有办法有一个给定的虚拟用户使用相同的IP地址。即当IP switching开启时,如果一个给定的用户会多次从IP池中获取IP,那么随后的迭代中,可能会使用不同的IP地址。
    在VS 2010中,Web测试引擎设法确保相同的用户将总是使用相同的IP地址,但不能保证一定能够如此。

    如果想给每一个用户分配唯一的IP地址,最大的问题是,目前的IP Switching限制每个代理最多只能有256个IP地址,这意味着你也被限制每个代理最多只能有256个虚拟用户。一种解决方案是在一台物理机器上使用多个虚拟机来获取多个代理。

    IP地址切换只能用于Web Tests

    IP Switching功能不能用于单元测试。

    用于IP切换的地址并不是永久设置的

    当您选择在负载测试时,在每个代理机使用多个IP地址(称为IP地址转换或IP欺骗),大多数测试工具会要求你往机器的的网卡中添加这些IP地址,并且它们需要总是可用,并始终显示的机器上的。 VS允许您将一系列的IP地址直接设置在测试项目中。 然后当测试开始运行时,VS动态将这些地址添加到代理中;测试结束时从代理删除它们。如果您需要使用IP Swtching,设置使用控制器/代理机制是必需的。

    如何设置IP Switching

    IP Switching有两个部分需要设置。首先,你必须为Test Rig的代理设置IP Switching,然后你必须告诉Load Test自己,它应该开启IP Switching。以下步骤:

    设置代理
    1, 打开Test Rig管理对话框(Test-> Administer Test Controller) (译者:VS2012中 Load Test –> Manage Test Controllers)

    2, 选中每个代理并且点击“Properties”

    3,在对话框中填写正确信息(如下图中所示)

    image

    此处配置代理属性

    image

    设置Load Test

    一旦Test Rig设置完成,你可以配置通过为Load Test配置正确的属性,来配置那个Load Test将实际使用IP Switching:

    image

    此处为Load Test启用IP Switching(在配置代理之后)

     

    IP Switching功能Troubleshooting

    1)确保在代理机器上,代理服务以管理员身份运行;这是必须的,因为代理服务会试图根据代理属性中的设置,将这些IP地址配置在指定的网卡上。而这么做是需要管理员权限的。

    2)确保为代理服务器配置的所有IP地址中,没有任何一个已经被直接配置在指定的网卡上了。

    3) 为代理服务启动verbose级别日志:

    *编辑文件QTAgentService.exe.config: (位置:<Program Files>Microsoft Visual Studio 9.0 Team Test Load AgentLoadTestQTAgentService.exe.config)

    *修改 <add key="CreateTraceListener" value="no"/> 为 "yes"

    *修改 <add name="EqtTraceLevel" value="3" /> 为 "4"
    *重启Load Test代理服务

    * 文件"VSTTAgent.log"将被创建在和QTAgentService.exe.config同一目录

    *在日志配置为verbose的情况下重新运行load test, 在日志文件中查找包含这样文本的行:"Attempting to configure IP address:" , "Configured IP address:" . 它告诉你代理服务是否试图把IP地址配置为你所指定的. 如果你看到 "Configured IP address:" 行, 那么ip地址被成功指定了. 如果没有,那么应该有错误被日志记录.

    如果你已经验证了以上步骤1&2没有问题,并且日志指示还是有IP地址配置失败,但是你没办法通过日志消息决定失败的原因(或者干脆就没有错误日志)。那么,在WebandLoad testing论坛递交一个新的主题,或者递交给微软的技术支持来获取更多帮助,在报告中提供你设置环境的有关细节,包括相关部分的日志文件。

    4)确保你运行的load test启动了IP Switching:在load test编辑器上点击每个"Scenario"节点, 在属性窗口中,验证"IP Switching"属性被设置为True(一般来说默认设置为True,但是值得检查一下)

    5)为代理进程开启verbose级别日志

    如果步骤3中所创建的日志显示IP地址被成功配置,那么下一步就是检查代理进程日志来验证load test确实使用这些IP地址来发送请求.

    为代理进程启动verbose级别日志:

    *编辑文件QTAgent.exe.config (位置<Program Files>Microsoft Visual Studio 9.0 Team Test Load AgentLoadTestQTAgent.exe.config)

    *修改: <add key="CreateTraceListener" value="no"/> 为 "yes"

    *修改 <add name="EqtTraceLevel" value="3" /> 为 "4"

    * 文件"VSTTAgentProcess.log"将被创建在和QTAgent.exe.config同一目录

    * 重新运行load test, 查找日志文件中类似的行:"Bound request on connection group M to IP address NNN.NNN.NNN.NNN", 如果verbose级别日志开启并且这样的行出现在日志文件中,IP Switching应该正常工作了。

    6) 如果在步骤5中日志所显示的独立的IP地址的数量要少于所配置的数量,那么应该是因为你的load test被配置为连接池的连接数小于配置的IP地址数。如果是这样,你可以增加连接池的大小,或者切换到"Connection per User" 模式,在load test的"run settings"属性中设置.

     

    本文由Binhua Liu原创翻译

  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/Binhua-Liu/p/3348813.html
Copyright © 2011-2022 走看看