Robot Framework api 使用 Oauth2 进行测试 - 将生成的令牌传递给其他测试用例
Robot Framework api test with Oauth2 - pass generated token to other test cases
使用与此类似的代码,我能够成功生成令牌并授权下面的请求。这两个动作都发生在一个测试用例中。我尝试创建一个新的测试用例,只复制第二个请求代码,当然它说未经授权。
所以我的问题是,因为我可以在第一个测试用例中生成一个令牌,我必须添加什么才能 use/pass 已经为第二个、第三个、第四个测试用例生成的令牌?
${data}= Create Dictionary Token_Name=TestTokenname grant_type=<grant type> client_Id=<your Id> Client_Secret=<Your client secret> scope=<your scpe>
${headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= RequestsLibrary.Post Request OA2 identity/connect/token data=${data} headers=${headers}
BuiltIn.Log To Console ${resp}
BuiltIn.Log To Console ${resp.status_code}
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Value ${resp.json()} Testtokenname
${accessToken}= evaluate $resp.json().get("access_token")
BuiltIn.Log to Console ${accessToken}
${token}= catenate Bearer ${accessToken}
BuiltIn.Log to Console ${token}
${headers1}= Create Dictionary Authorization=${token}
RequestsLibrary.Create Session GT <Your Server URL> verify=${True}
${resp}= RequestsLibrary.Get Request GT <Your API URL> headers=${headers1}
Should Be Equal As Strings ${resp.status_code} 200 ```
在您的代码中,在获取令牌并将其存储在变量中后,立即添加以下代码行。使用此关键字设置的变量在所有后续测试套件、测试用例和用户关键字中全局可用。
Set Global Variable ${token}
更详细的解释在下面link
https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Global%20Variable
使用与此类似的代码,我能够成功生成令牌并授权下面的请求。这两个动作都发生在一个测试用例中。我尝试创建一个新的测试用例,只复制第二个请求代码,当然它说未经授权。 所以我的问题是,因为我可以在第一个测试用例中生成一个令牌,我必须添加什么才能 use/pass 已经为第二个、第三个、第四个测试用例生成的令牌?
${data}= Create Dictionary Token_Name=TestTokenname grant_type=<grant type> client_Id=<your Id> Client_Secret=<Your client secret> scope=<your scpe>
${headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= RequestsLibrary.Post Request OA2 identity/connect/token data=${data} headers=${headers}
BuiltIn.Log To Console ${resp}
BuiltIn.Log To Console ${resp.status_code}
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Value ${resp.json()} Testtokenname
${accessToken}= evaluate $resp.json().get("access_token")
BuiltIn.Log to Console ${accessToken}
${token}= catenate Bearer ${accessToken}
BuiltIn.Log to Console ${token}
${headers1}= Create Dictionary Authorization=${token}
RequestsLibrary.Create Session GT <Your Server URL> verify=${True}
${resp}= RequestsLibrary.Get Request GT <Your API URL> headers=${headers1}
Should Be Equal As Strings ${resp.status_code} 200 ```
在您的代码中,在获取令牌并将其存储在变量中后,立即添加以下代码行。使用此关键字设置的变量在所有后续测试套件、测试用例和用户关键字中全局可用。
Set Global Variable ${token}
更详细的解释在下面link https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Global%20Variable