我正在尝试在基于令牌的授权机制下创建测试。在访问令牌过期之前,一切都几乎正常工作。然后我正在尝试刷新它,但是似乎没有执行某些测试。
这是授权舞蹈:
users.csv 中的 foreach 用户: { 获取授权码:Http 采样器 在 ${authorizationcode} 上提取 AuthzCode:JSON 提取器 如果 ${JMeterThread.last_sample_ok} { 获取访问令牌:Http 采样器 在 ${accesstoken} 上提取 AccessToken:JSON 提取 器 在 ${refreshtoken} 上提取 RefreshToken:JSON 提取器 如果 ${JMeterThread.last_sample_ok} { data.csv 中的 foreach 数据 { 在正文中发送数据:Http 采样器 如果 ${JMeterThread.last_sample_ok} == false ******************* { ${expiredaccesstokenerror} 上的提取错误:JSON 提取器 if (${expiredaccesstokenerror} == "expired_accesstoken") { 使用 ${refreshtoken} 获取新的 accessToken: Http 请求 在 ${accesstoken} 上提取 AccessToken: JSON 提取 器 在 ${refreshtoken} 上提取 RefreshToken: JSON 提取器 } } } } } }
一切正常,直到AccessToken过期并且服务器返回我这个正文:
{
"error_description":"Access token expired",
"suberror":"expired_accesstoken",
"error":"invalid_grant"
}
在那之后,我期待 JMeter 到达内部if controller
,${JMeterThread.last_sample_ok} == false
然后下一个if controller
with condition ${expiredaccesstokenerror} == "expired_accesstoken"
。但是我无法弄清楚为什么没有达到此代码。
正如您在此处的图片中看到的那样,我在 JMeter 中将这个过程实现为: