【问题标题】:Cas Ticket Issue in JmeterJmeter 中的 Cas 票务问题
【发布时间】:2013-07-04 08:06:57
【问题描述】:

我有一个 Web 应用程序,它使用 CAS Ticket 进行用户身份验证,每次登录都不同。我在 JMeter 中录制了脚本。我还通过填充正则表达式提取器来关联页面,如下所示:

录制的脚本有 url:https://foo.com/j_spring_cas_security_check?ticket=ST-3101-QDTyjbbHoOHvgPMdRBIg-cas

应用上述所有内容后,我运行了脚本,但状态失败,显示https://foo.com/j_spring_cas_security_check?ticket=Ticket_Not_Found

如果有人能告诉我我的脚本中遗漏了什么,那将非常有帮助?

【问题讨论】:

  • 尝试使用rubular.com 进行正则表达式测试..
  • 不确定我们可以如何帮助您?我的意思是它应该如何工作?你在期待什么?
  • @HamZa 票证需要是动态的,因此每次登录 Jmeter 都会获得不同的票证进行身份验证。因此,为了使票证动态化,我使用了正则表达式提取器,其中参考名称为“票证”。现在,此引用名称用作脚本中将使用票证的任何位置的变量。正则表达式字段有一个正则表达式,用于创建满足 cas 票证标准格式的随机票证。重新运行脚本后,我希望在请求代码中加入 ticket=ST-3101-QDRyjffHoOHvgPMdRBIg-cas。
  • @SuneetaSingh 好的,试试ticket=(.+) 这会匹配到最后,所以我希望ticket var后面没有参数:)
  • 您是否确保提取器可以处理正确的数据? (“要检查的响应字段”== URL?)

标签: regex jmeter performance-testing cas correlation


【解决方案1】:

有两种方法,

如果您有多个用户名和密码,并且可以将它们与 Jmeter 一起使用, 您可以使用它们来生成 CAS ST(服务票证)。

另一个: CAS创建ticket时默认只能使用一次。

您必须更改您的 CAS 服务器的 ticketExpirationPolicies.xml 中的值 多次使用同一张票。

默认位置是: WEB_INF/spring-configuration/ticketExpirationPolicies.xml

如果您希望 50 个用户使用同一张票,请将其更改为

    <!-- This argument is the time a ticket can exist before its considered expired.  -->
    <constructor-arg
        index="1"
        value="100000" />
</bean>

<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
    <!-- This argument is the time a ticket can exist before its considered expired.  -->
    <constructor-arg
        index="0"
        value="7200000" />
</bean>

回答者:VIVEK ADHIKARI

【讨论】:

    【解决方案2】:

    从 url 的参数列表中获取票证值时似乎发生了错误。也许您可以在页面上添加一个隐藏字段并通过此参数设置其值。

    &lt;input type="hidden" id="ticket_key" value="ST-3101-QDTyjbbHoOHvgPMdRBIg-cas" /&gt;

    然后你可以通过Regular Extractor获取它

    ticket_key=(.+)

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 2014-05-11
      相关资源
      最近更新 更多