2

我有一个 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

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

4

2 回答 2

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

于 2013-08-09T12:13:05.260 回答
0

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

<input type="hidden" id="ticket_key" value="ST-3101-QDTyjbbHoOHvgPMdRBIg-cas" />

然后你可以通过Regular Extractor得到它

ticket_key=(.+)

希望它有帮助。

于 2013-08-18T14:17:20.183 回答