RobotFrameworkの変数にjsonデータファイルを直接ロードしようとしています。誰かが例えばで詳しく説明できますか?それを行う方法について正確な構文を与えますか?前もって感謝します :)
1つの方法は、 OperatingSystem ライブラリから Get File キーワードを使用し、次に組み込みの Evaluate キーワードを使用して変換することです。 pythonオブジェクト。
たとえば、次の内容のexample.jsonという名前のファイルについて考えてみます。
{
"firstname": "Inigo",
"lastname": "Montoya"
}
次のような名前で名前をログに記録できます。
*** Settings ***
| Library | OperatingSystem
*** Test Cases ***
| Example of how to load JSON
| | # read the raw data
| | ${json}= | Get file | example.json
| |
| | # convert the data to a python object
| | ${object}= | Evaluate | json.loads('''${json}''') | json
| |
| | # log the data
| | log | Hello, my name is ${object["firstname"]} ${object["lastname"]} | WARN
もちろん、pythonに独自のライブラリを記述して、同じことを行うキーワードを作成することもできます。
これに利用できるライブラリがあります:HttpLibrary.HTTP
${json}= | Get file | example.json
${port} | HttpLibrary.HTTP.Get Json Value | ${json} | /port
log | ${port}
APIドキュメントはこちらから入手できます: http://peritus.github.io/robotframework-httplibrary/HttpLibrary.html
一般的な使用法は、jsonデータを Http Library Requests のような別のライブラリに渡すことです。あなたができること:
*** Settings ***
Library OperatingSystem
Library RequestsLibrary
*** Test Cases ****
Create User
#...
${file_data}=
... Get Binary File ${RESOURCES}${/}normal_user.json
Post Request example_session /user data=${file_data}
#...
直接のpythonは関与せず、中間のjsonオブジェクトもありません。
Thanks Vinay .. that helped now we can retrieve data from json file in robot framework as well
*** Settings ***
Library HttpLibrary.HTTP
Library OperatingSystem
*** Test Cases ***
Login_to_SalesForce_Json
${jsonfile} Get File c:/pathtojason/Data/testsuite.json
${username} Get Json Value ${jsonfile} /test_case1/username
log ${username}
Below is the json file structure
{
"test_case1":
{
"username":"User1",
"password":"Pass1"
}
,
"test_case2":
{
"username1":"User2",
"password1":"Pass2"
}
}
前提条件は次のとおりです。pipinstall--trusted-Hostpypi.python.orgrobotframework-httplibrary
私も同様の問題を抱えていましたが、これは問題なく機能します。
$ {json} バイナリファイルを取得 $ {json_path} nameOfJsonFile.json
ここのように、.jsonとPOSTを読むことは、APIテストで私のために働きます
*** Settings ***
Library Collections
Library ExtendedRequestsLibrary
Library OperatingSystem
*** Variables ***
${uri} https://blabla.com/service/
${json_path} C:/home/user/project/src/json/
*** Test Cases ***
Name of Robot Test Case
Create Session alias ${uri}
&{headers} Create Dictionary Content-Type=application/json; charset=utf-8
${json} Get Binary File ${json_path}nameOfJsonFile.json
${resp} Post Request alias data=${shiftB} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
読み取ったバイナリファイル(私の場合は$ {json}を辞書に変換する必要がある場合もありますが、最初にこの単純なソリューションを試してください。