使用完整的VS企业版对我们的WebApplication进行一些负载测试,我很难创建一个有效的webtest。我们的测试站点是一个Azure WebApp/API,带有AAD身份验证前端。失败的是作为测试用户的身份验证。当与VS或小提琴录音时,我又没能重放测试。我相信这是个凭据/象征性的问题..。
由于我们的应用程序不是本地应用程序,所以我无法获得特定用户凭据的令牌。(我得到了一个已知的异常),通过使用下面的代码创建插件及其PreWebtest方法,我成功地获得了Bearer令牌,但是这是在应用程序级别,而不是特定的用户级别。
private string GetAdToken(string inClientId, string inAppKey, string
inAadInstance, string inTenant, string inToDoResourceId)
{
// inToDoResourceId = https://graph.microsoft.com
var myCredential = new ClientCredential(inClientId, inAppKey);
string myAuthority = string.Format(CultureInfo.InvariantCulture,
inAadInstance, inTenant);
var myAuthContext = new AuthenticationContext(myAuthority);
Task<AuthenticationResult> myResults =
myAuthContext.AcquireTokenAsync(inToDoResourceId, myCredential);
return myResults.Result.AccessToken;
}如何针对特定的AAD测试用户身份实现自动化(通过网络测试),以允许进一步测试我们的web应用程序的自动化?提前谢谢你,
发布于 2018-06-21 23:55:37
谢谢你的回答。我找到了一个解决问题的方法:在VS webtest工具中有一个“设置凭据”按钮,您可以在其中添加凭据。当我再次运行测试时,测试成功地登录到了我的webapp。
@GuillaumeLaHaye,是的,我知道我的AcquireTokenAsync()方法不是特定于用户的,但是当我使用带有UserCredential的方法时,我得到了这个异常:请求主体必须包含以下参数:'client_secret或client_assertion‘。
因为它是一个WebbApp/API,而不是一个本地应用程序(配置在Azure Portal中,cf )。秘密)
@AdrianHHH,Get Ad token是在preWebtest方法中的pugin中调用的(在每次测试之前运行),其中包含了我的web应用程序的clientId、clientSecret、tenantId、AadInstance (我在我的蔚蓝门户上找到了它们).从这个Oauth 2.0流中,我相信我想获得授权代码或访问令牌,但是由于我在get测试和授权流方面是新手,所以我不知道我得到了哪个令牌,也不知道如何使用它。
https://stackoverflow.com/questions/50976963
复制相似问题