博客

如何提取动态值并使用NeoLoad变量

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年2月03日

设计一个负载测试涉及到创建一个脚本,一组电话,请求,应用服务器和行动。“脚本”,在其原始状态,通常是一个记录的一个模拟用户与应用程序交互。

与任何典型的用户会话访问应用服务器,有参数(和价值观),其独特的指纹给这个特定的会话。为什么这个很重要?如果不修改的,这些参数值将记录回放到服务器的原始值(s)。最初的静态值不再是有效的,通常是特定于原始记录,但不适合任何回放脚本的。这些参数包括会话id、令牌,时间戳值,和全局唯一标识符(uuid),必须是不同的每次运行脚本。

动态参数

这些静态值的处理,以便显示动态独特每次负载测试运行称为关联,或许多所说一样“设计的面包和黄油。“许多的最佳负载测试工具帮助识别和处理的动态参数。一些工具,比如188金宝搏app苹果下载软件Tricentis NeoLoad,可以自动处理许多事件的动态参数通过一个称为框架的特性。这可以节省时间和设计和维护一个脚本为负载测试做准备。一旦你确定什么是动态脚本并创建相关(使用一个正则表达式提取和替换),你推广一个框架。这允许NeoLoad搜索动态值自动在您的脚本和处理相关。可以显著节省时间,使你的工作更容易和更少的压力。

独特的动态值的一些示例web应用程序使用时间戳的形式。因为时间是特定于应用程序和用户访问应用程序,最终将成为无效的值,需要替换为一个变量,使其动态。大多数web应用程序使用时代时间戳值,从1970年1月1日或当前毫秒。把这个截图,例如,使用谷歌广告服务请求。

188金宝搏app苹果下载软件Tricentis NeoLoad——动态参数

它使用一个值“1519246164376”的“随机”参数,也就是相当于周三,2018年2月21日下午3:49:24.376 GMT-05:00(美国东部时区)。如果你想回放脚本使用这个值经过一天或更多,服务器可能会拒绝你的请求,产生一个脚本错误。NeoLoad,你可以用一个变量来代替这个值基于当前日期使用当前时间的毫秒模式(时代时间)。

会话识别

几乎所有web应用程序都使用某种形式的会话识别指定单个用户的应用程序访问时间,从而使它独一无二的。这个参数将包含一个字母数字值存储在一个cookie,表单字段或URL。价值有时会包含一个时间戳(见上图)或其他更复杂的因素,这可能是“jsessionID”或相似的UUID。虽然NeoLoad通常处理会话id很好,它可以很轻松地处理复杂的方法和相关性。无论如何处理,当一个用户(或虚拟用户)访问一个网站,它是独特的会话信息,要么是有效的,只要浏览器或指定的时间开放。这就是为什么它是至关重要的,以确保您使用动态参数。

动态参数识别

正如你所看到的,重要的是要识别和处理参数与动态值。从记录使用静态值将导致脚本和负载测试失败。能够确定哪些参数是动态的同样重要的是你如何处理它们。有一些基本方法(本文将不进入),帮助识别——一种常见的做法是比较录音播放相同的脚本,寻找有价值的相似之处。注意任何错误的反应可能会给被不当什么线索。如果一个会话ID分配是无效的,你可能会生成一个403或500状态码。请求时比较来确定动态参数,NeoLoad并排视图。现在,让我们专注于如何处理参数,一旦你认出它是动态的。

188金宝搏app苹果下载软件Tricentis NeoLoad先进——动态参数识别

在上面的示例中,我们将使用一个在线公开演示电子商务应用程序称为“JPetstore”,你可以买动物来购买。后记录的简单场景的主要页面,选择“猫”的类别(包括类型),和继续付款购买,我们将检查示例用户会话的动态参数。在这个示例中,应用程序使用一个jsessionID参数在会话cookie设置用户访问信息,如下面截图的响应使用Tricentis NeoLoad。188金宝搏app苹果下载软件

188金宝搏app苹果下载软件Tricentis NeoLoad——变量提取器

通常,一旦你确定动态参数,您可以创建一个正则表达式提取器。通过这种方式,该参数的值为每个脚本从服务器响应中提取运行和用户会话/访问。NeoLoad有一个简单的方法来创建一个器使用一个变量。为了说明这一点,指的是一个正则表达式提取的图像,允许您使用它作为以后NeoLoad变量(下一步)。

你会注意到在窗口的底部的值可以让你确认你的正则表达式是正确的。这是相关的第一部分——识别动态价值和创建器使用一个正则表达式。下一个是一个手动步骤,使用它与你value-replacing任何请求变量。在这种情况下,jsessionID或在NeoLoad $ {jsessionID}。你会搜索请求值“F47AC58DD1575B9CBBB1361944B5C571”和替换这些从器NeoLoad变量。特别是,这就是NeoLoad优于大多数竞争对手。

188金宝搏app苹果下载软件Tricentis NeoLoad——动态参数识别框架

如前所述,NeoLoad的框架特性使相关的自动化,消除耗时的工作与动态参数相关处理。它甚至会处理所有出现的动态参数,只要它匹配的正则表达式,可以找到一个在请求相应的价值。通常这可以节省几十个小时或更多的寻找和处理你所有的相关脚本。来显示这个行动,请参考向导和配置促进/转换器(上图),你已经有了一个框架。

一旦创建了框架,它将搜索和替换它找到的所有匹配的正则表达式和相应的值如下图所示。如您所见,现在取而代之的是萃取器的值变量。这允许脚本从服务器响应中提取价值当脚本运行时,替换请求中的值,从而保持它为每个用户动态和当前迭代。

188金宝搏app苹果下载软件Tricentis NeoLoad——动态参数识别取代的价值

器取代了许多jsessionID值的出现在整个过程中,你可以看到多少时间可以得救;它将成为未来自动录音。这意味着没有这个值所需的手工工作。

结论

相关的核心是设计用于负载测试的脚本。是很困难和耗时的,首先需要确定什么是动态的;找到的响应,可以提取,匹配正则表达式的所有出现在请求提取。NeoLoad使这个过程更容易,节省你的时间通过自动化你的相关性通过框架。NeoLoad,你有更多的时间专注于其他挑战您的负载测试,而不是阻碍处理动态参数。

这篇文章最初发表在2018年3月和2021年7月被刷新。

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年2月03日
Baidu
map