首页 > 解决方案 > 如何只读取一次 JSON 并在 Robot Framework 的同一个机器人文件中多次使用它

问题描述

我正在使用机器人框架实现测试自动化框架。但我无法管理一些 JSON 的东西。我有一个充满关键字的机器人文件(没有测试),我试图在测试设置部分读取 json 文件(充满 xpath),但它失败了。

是否可以在机器人文件的开头读取文件并将该对象用于该列表中的每个关键字?

当前结构:

keyword 1
  read json
  do sth

keyword 2
  read json
  do sth

keyword 3
  read json
  do sth

我想要的是?

read json

keyword 1
  do sth
keyword 2
  do sth
keyword 3
  do sth

当前实施:

*** Settings ***
    Library   SeleniumLibrary
    Library   JSONLibrary
    Library   OperatingSystem
    Resource  ../PageObjects/LoginPage.robot


Suite Setup  Read object repository locators
*** Keywords ***

Read object repository locators
        [Documentation]  For all elements on website, this keyword is returns an 
        xpath collection for other keywords
        # read the json data
        ${json}=  Get file  ../library/ObjectRepository.json
        # convert the data to a object
        ${object}=  Evaluate  json.loads(r'''${json}''')
        set suite variable  ${object}

Read object
       ${password}=  Set Variable  ${object["registerInfo"][0]["password"]}

标签: jsonseleniumtestingautomated-testsrobotframework

解决方案


您可以使用Suite Setup关键字设置套件级别变量,也可以通过创建读取 JSON 文件并返回它的自定义 Python 脚本来使用变量文件。

*** Settings ***
Variables    read_json.py

推荐阅读