当前位置: 首页 > news >正文

7、Json文件的操作总结【robot framework】

1、JSONLibrary简介

Robot Framework 是一种通用的自动化测试框架,它支持使用关键字驱动的测试,并且易于学习和使用。Robot Framework 提供了丰富的标准库,而 JSONLibrary 就是其中之一,用于处理 JSON 数据。

安装 JSONLibrary

在开始使用 JSONLibrary 之前,首先需要确保它已被正确安装。可以使用 pip 进行安装:

bash

pip install robotframework-jsonlibrary

导入 JSONLibrary

在 Robot Framework 的测试套件中,通过导入 JSONLibrary 来启用对 JSON 数据的处理:

robot

*** Settings ***

Library    JSONLibrary

2、简单用法示例

关键字:Should Be Valid JSON

这个关键字用于验证给定的字符串是否是有效的 JSON 数据:

robot

*** Test Cases ***

Check If Valid JSON

    ${json_string}    Set Variable    {"key": "value"}

    Should Be Valid JSON    ${json_string}

在上述例子中,我们设置了一个 JSON 字符串,并使用 Should Be Valid JSON 来验证它是否有效。

关键字:Get Value From Json

这个关键字用于从 JSON 数据中获取特定键的值:

robot

*** Test Cases ***

Get Value From JSON

    ${json_string}    Set Variable    {"name": "John", "age": 30}

    ${name}    Get Value From Json    ${json_string}    name

    Log    Name: ${name}

在上述例子中,我们通过 Get Value From Json 关键字获取了 JSON 数据中键为 name 的值。

关键字:Should Match Json

这个关键字用于验证两个 JSON 字符串是否匹配:

robot

*** Test Cases ***

Check JSON Matching

    ${expected}    Set Variable    {"name": "John", "age": 30}

    ${actual}    Set Variable    {"name": "John", "age": 30}

    Should Match Json    ${actual}    ${expected}

在上述例子中,我们使用 Should Match Json 关键字验证了两个 JSON 字符串是否匹配。

3、进阶 JSON 数据操作

JSONLibrary 提供了一些关键字,可以进行更复杂的 JSON 数据操作,包括更新、删除等。以下是一些关键字的使用示例:

关键字:Update Value In Json

这个关键字用于更新 JSON 数据中指定键的值:

robot

*** Test Cases ***

Update JSON Value

    ${json_string}    Set Variable    {"name": "John", "age": 30}

    ${updated_json}    Update Value In Json    ${json_string}    age    31

    Should Not Be Equal As Strings    ${json_string}    ${updated_json}

在上述例子中,我们使用 Update Value In Json 关键字将 JSON 数据中键为 age 的值从 30 更新为 31。

关键字:Remove Member From Json

这个关键字用于从 JSON 数据中删除指定键:

robot

*** Test Cases ***

Remove JSON Member

    ${json_string}    Set Variable    {"name": "John", "age": 30}

    ${json_after_removal}    Remove Member From Json    ${json_string}    age

    Should Not Contain    ${json_after_removal}    age

在上述例子中,我们使用 Remove Member From Json 关键字删除了 JSON 数据中的键 age。

关键字:Set Value In Json

这个关键字用于设置 JSON 数据中指定键的值,如果键不存在,则创建该键:

robot

*** Test Cases ***

Set Value In JSON

    ${json_string}    Set Variable    {"name": "John"}

    ${updated_json}    Set Value In Json    ${json_string}    age    30

    Should Not Be Equal As Strings    ${json_string}    ${updated_json}

在上述例子中,我们使用 Set Value In Json 关键字设置了 JSON 数据中键为 age 的值为 30。

4、JSON 文件的打开、修改与保存

robot

*** Settings ***

Library    JSONLibrary

*** Test Cases ***

Read and Modify JSON

    ${json_data}=    Get File    path/to/your/file.json

    Log    Original JSON: ${json_data}

   

    ${value}=    Get Value From JSON    ${json_data}    $.company

    Log    Company Name: ${value}

   

    ${modified_json}=    Set Value To JSON    ${json_data}    $.company    NewCompanyName

    Log    Modified JSON: ${modified_json}

   

    Save JSON To File    ${modified_json}    path/to/your/modified_file.json

在这个例子中:

    使用 Get File 关键字读取 JSON 文件的内容。

    使用 Get Value From JSON 关键字根据 JSONPath 表达式获取特定字段的值。

    使用 Set Value To JSON 关键字修改 JSON 文件的特定字段的值。

    使用 Save JSON To File 关键字保存修改后的 JSON 数据到新的文件中。

请确保根据你的实际 JSON 结构和需求,调整 JSONPath 表达式和要修改的字段值。JSONLibrary 还提供了其他关键字,如 Get Keys From JSON、Remove From JSON 等,可以根据需要进行使用。

5、遍历查找更新json文件的内容

在这个例子中:

  1. 使用 Get File 关键字读取 JSON 文件的内容。
  2. 使用 Traverse and Update 自定义关键字进行 JSON 数据的遍历。
  3. 在遍历过程中,使用 Get Value From JSON 获取键值对应的值。
  4. 如果值为 'old_value',则使用 Set Value To JSON 更新为 'new_value'。
  5. 如果值为字典(dictionary),则递归调用 Traverse and Update 关键字。

*** Settings ***

Library    JSONLibrary

*** Variables ***

${json_file}    path/to/your/file.json

*** Test Cases ***

Traverse and Update JSON

    ${json_data}=    Get File    ${json_file}

    ${modified_json}=    Call Method    Traverse and Update    ${json_data}

    Save JSON To File    ${modified_json}    path/to/your/updated_file.json

*** Keywords ***

Traverse and Update

    [Arguments]    ${json_data}

    Log    Traversing and updating JSON...

    :FOR    ${key}    IN    @{json_data.keys()}

    \    ${value}=    Get Value From JSON    ${json_data}    ${key}

    \    Run Keyword If    '${value}' == 'old_value'    Set Value To JSON    ${json_data}    ${key}    new_value

    \    Run Keyword If    '${value}' is dictionary    Run Keyword    Traverse and Update    ${value}

    [Return]    ${json_data}

http://www.lryc.cn/news/290504.html

相关文章:

  • python 循环解压 解压多重压缩包
  • 基于C#制作一个连连看小游戏
  • Android-System 根据包名查找已安装应用apk方法
  • 洛谷-P4124题-手机号码-Java
  • 仅使用 Python 创建的 Web 应用程序(前端版本)第08章_商品详细
  • Stable Diffusion 长视频真人动画风格互转
  • 精要图示:园区金融数字化服务蓝图,以园区为支点推动信贷业务增长
  • 2024 中国(南京)国际口腔设备器械博览会
  • 【MyBatis】快速入门MyBatis(保姆式教学),你值得一看
  • git pull代码时候报错:error: cannot open .git/FETCH_HEAD: Permission denied
  • shell - 正则表达式和grep命令和sed命令
  • datawhale 大模型学习 第十二章-大模型环境影响
  • Qt WebEngine模块使用(开发环境安装和程序开发)
  • 网络体系结构 和网络原理之UDP和TCP
  • 将Android APP安装到sm8550 HDK的NVMe SSD
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • Linux:进度条的创建
  • treeview
  • Android开发中自定义View实现RecyclerView下划线
  • MySQL前百分之N问题--percent_rank()函数
  • 【高效开发工具系列】Wolfram Alpha
  • 分享7种SQL的进阶用法
  • protobuf-go pragma.go 文件介绍
  • C#设置程序开机启动
  • 爱可声助听器参与南湖区价值百万公益助残捐赠活动成功举行
  • SpringBoot 实现定时任务
  • 将Vue2中的console.log调试信息移除
  • EMC设计检查建议,让PCB layout达到最佳性能
  • 常用抓包软件集合(Fiddler、Charles)
  • C++入门(一)— 使用VScode开发简介