手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下

这篇具有很好参考价值的文章主要介绍了手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇我写了登录,我们发现json还是没有什么大问题,还蛮好用的,但是我们再写下一个,比如线索新建接口的时候,我们写着写着会发现问题:

我们写获取url的没有问题,代码如下:

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

import json



import requests



from config.read_json_file import read_json_file

from config.setting import ConfigHandler

from tools.yamlControl import GetYamlData



baseUrl = GetYamlData(ConfigHandler.config_path).get_yaml_data()



jsonpath = (ConfigHandler.root_path+'/testdata/demo2.json')

# 读取JSON文件

url = baseUrl['host']+read_json_file(jsonpath)['url']

print(url)

下一个我们要获取的是headers,但是有个问题,这次的headers传值不像之前的登录,他还要传递登录获取的令牌cookie

headers={"Content-Type":"application/json","Admin-Token":cookie}

怎么办?我们只有调用之前的tokenCreate.py把生成的Admin-Token写入到demo2.json中,由次,我们开始编写json写入的程序代码

file_path = ConfigHandler.root_path+'/testdata/demo2.json'

print(file_path)

data = read_json_file(jsonpath)

data['headers']['Admin-Token']=get_token()

with open(file_path, 'w') as file:

json.dump(data, file)

上一步中,第一行代码是获取文件路径

在通过读取之前的json文件,通过代码

data['headers']['Admin-Token']=get_token()

将最新获取的token写入文件。

最后形成的文件内容如下:

{"url": "/CrmLeads/addOrUpdate", "method": "POST", "headers": {"Content-Type": "application/json", "Admin-Token": "44669243e3ff4151a37456913a6b7ec1"}, "casedata": [[{"entity": {"leads_name": "\u6536\u5230\u5c31\u597d2", "telephone": "15991710522", "mobile": "15991710522", "address": "111", "next_time": "2024-01-08 00:00:00", "remark": "11111111"}, "field": [{"fieldId": 2, "formType": "select", "isNull": 0, "name": "\u7ebf\u7d22\u6765\u6e90", "options": "\u4fc3\u9500,\u641c\u7d22\u5f15\u64ce,\u5e7f\u544a,\u8f6c\u4ecb\u7ecd,\u7ebf\u4e0a\u6ce8\u518c,\u7ebf\u4e0a\u8be2\u4ef7,\u9884\u7ea6\u4e0a\u95e8,\u7535\u8bdd\u54a8\u8be2,\u90ae\u4ef6\u54a8\u8be2", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u641c\u7d22\u5f15\u64ce", "fieldType": 0, "fieldName": "\u7ebf\u7d22\u6765\u6e90", "setting": ["\u4fc3\u9500", "\u641c\u7d22\u5f15\u64ce", "\u5e7f\u544a", "\u8f6c\u4ecb\u7ecd", "\u7ebf\u4e0a\u6ce8\u518c", "\u7ebf\u4e0a\u8be2\u4ef7", "\u9884\u7ea6\u4e0a\u95e8", "\u7535\u8bdd\u54a8\u8be2", "\u90ae\u4ef6\u54a8\u8be2"]}, {"fieldId": 5, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u884c\u4e1a", "options": "IT,\u91d1\u878d\u4e1a,\u623f\u5730\u4ea7,\u5546\u4e1a\u670d\u52a1,\u8fd0\u8f93/\u7269\u6d41,\u751f\u4ea7,\u653f\u5e9c,\u6587\u5316\u4f20\u5a92", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u623f\u5730\u4ea7", "fieldType": 0, "fieldName": "\u5ba2\u6237\u884c\u4e1a", "setting": ["IT", "\u91d1\u878d\u4e1a", "\u623f\u5730\u4ea7", "\u5546\u4e1a\u670d\u52a1", "\u8fd0\u8f93/\u7269\u6d41", "\u751f\u4ea7", "\u653f\u5e9c", "\u6587\u5316\u4f20\u5a92"]}, {"fieldId": 6, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u7ea7\u522b", "options": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09,B\uff08\u666e\u901a\u5ba2\u6237\uff09,C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09", "isUnique": 0, "inputTips": "null", "type": 3, "value": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "fieldType": 0, "fieldName": "\u5ba2\u6237\u7ea7\u522b", "setting": ["A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "B\uff08\u666e\u901a\u5ba2\u6237\uff09", "C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09"]}]}], [{"entity": {"leads_name": "\u6536\u5230\u5c31\u597d2", "telephone": "15991710522", "mobile": "15991710522", "address": "111", "next_time": "2024-01-08 00:00:00", "remark": "11111111"}, "field": [{"fieldId": 2, "formType": "select", "isNull": 0, "name": "\u7ebf\u7d22\u6765\u6e90", "options": "\u4fc3\u9500,\u641c\u7d22\u5f15\u64ce,\u5e7f\u544a,\u8f6c\u4ecb\u7ecd,\u7ebf\u4e0a\u6ce8\u518c,\u7ebf\u4e0a\u8be2\u4ef7,\u9884\u7ea6\u4e0a\u95e8,\u7535\u8bdd\u54a8\u8be2,\u90ae\u4ef6\u54a8\u8be2", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u641c\u7d22\u5f15\u64ce", "fieldType": 0, "fieldName": "\u7ebf\u7d22\u6765\u6e90", "setting": ["\u4fc3\u9500", "\u641c\u7d22\u5f15\u64ce", "\u5e7f\u544a", "\u8f6c\u4ecb\u7ecd", "\u7ebf\u4e0a\u6ce8\u518c", "\u7ebf\u4e0a\u8be2\u4ef7", "\u9884\u7ea6\u4e0a\u95e8", "\u7535\u8bdd\u54a8\u8be2", "\u90ae\u4ef6\u54a8\u8be2"]}, {"fieldId": 5, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u884c\u4e1a", "options": "IT,\u91d1\u878d\u4e1a,\u623f\u5730\u4ea7,\u5546\u4e1a\u670d\u52a1,\u8fd0\u8f93/\u7269\u6d41,\u751f\u4ea7,\u653f\u5e9c,\u6587\u5316\u4f20\u5a92", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u623f\u5730\u4ea7", "fieldType": 0, "fieldName": "\u5ba2\u6237\u884c\u4e1a", "setting": ["IT", "\u91d1\u878d\u4e1a", "\u623f\u5730\u4ea7", "\u5546\u4e1a\u670d\u52a1", "\u8fd0\u8f93/\u7269\u6d41", "\u751f\u4ea7", "\u653f\u5e9c", "\u6587\u5316\u4f20\u5a92"]}, {"fieldId": 6, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u7ea7\u522b", "options": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09,B\uff08\u666e\u901a\u5ba2\u6237\uff09,C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09", "isUnique": 0, "inputTips": "null", "type": 3, "value": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "fieldType": 0, "fieldName": "\u5ba2\u6237\u7ea7\u522b", "setting": ["A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "B\uff08\u666e\u901a\u5ba2\u6237\uff09", "C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09"]}]}], [{"entity": {"leads_name": "\u6536\u5230\u5c31\u597d2", "telephone": "15991710522", "mobile": "15991710522", "address": "111", "next_time": "2024-01-08 00:00:00", "remark": "11111111"}, "field": [{"fieldId": 2, "formType": "select", "isNull": 0, "name": "\u7ebf\u7d22\u6765\u6e90", "options": "\u4fc3\u9500,\u641c\u7d22\u5f15\u64ce,\u5e7f\u544a,\u8f6c\u4ecb\u7ecd,\u7ebf\u4e0a\u6ce8\u518c,\u7ebf\u4e0a\u8be2\u4ef7,\u9884\u7ea6\u4e0a\u95e8,\u7535\u8bdd\u54a8\u8be2,\u90ae\u4ef6\u54a8\u8be2", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u641c\u7d22\u5f15\u64ce", "fieldType": 0, "fieldName": "\u7ebf\u7d22\u6765\u6e90", "setting": ["\u4fc3\u9500", "\u641c\u7d22\u5f15\u64ce", "\u5e7f\u544a", "\u8f6c\u4ecb\u7ecd", "\u7ebf\u4e0a\u6ce8\u518c", "\u7ebf\u4e0a\u8be2\u4ef7", "\u9884\u7ea6\u4e0a\u95e8", "\u7535\u8bdd\u54a8\u8be2", "\u90ae\u4ef6\u54a8\u8be2"]}, {"fieldId": 5, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u884c\u4e1a", "options": "IT,\u91d1\u878d\u4e1a,\u623f\u5730\u4ea7,\u5546\u4e1a\u670d\u52a1,\u8fd0\u8f93/\u7269\u6d41,\u751f\u4ea7,\u653f\u5e9c,\u6587\u5316\u4f20\u5a92", "isUnique": 0, "inputTips": "null", "type": 3, "value": "\u623f\u5730\u4ea7", "fieldType": 0, "fieldName": "\u5ba2\u6237\u884c\u4e1a", "setting": ["IT", "\u91d1\u878d\u4e1a", "\u623f\u5730\u4ea7", "\u5546\u4e1a\u670d\u52a1", "\u8fd0\u8f93/\u7269\u6d41", "\u751f\u4ea7", "\u653f\u5e9c", "\u6587\u5316\u4f20\u5a92"]}, {"fieldId": 6, "formType": "select", "isNull": 0, "name": "\u5ba2\u6237\u7ea7\u522b", "options": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09,B\uff08\u666e\u901a\u5ba2\u6237\uff09,C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09", "isUnique": 0, "inputTips": "null", "type": 3, "value": "A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "fieldType": 0, "fieldName": "\u5ba2\u6237\u7ea7\u522b", "setting": ["A\uff08\u91cd\u70b9\u5ba2\u6237\uff09", "B\uff08\u666e\u901a\u5ba2\u6237\uff09", "C\uff08\u975e\u4f18\u5148\u5ba2\u6237\uff09"]}]}]]}

最后我们修改demo2的代码如下

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

import json



import requests



from config import setting



from config.read_json_file import read_json_file

from config.setting import ConfigHandler

from demo.tokenCreate import get_token

from tools.yamlControl import GetYamlData



baseUrl = GetYamlData(ConfigHandler.config_path).get_yaml_data()



jsonpath = (ConfigHandler.root_path+'/testdata/demo2.json')

# 读取JSON文件



url = baseUrl['host']+read_json_file(jsonpath)['url']

print(url)

file_path = ConfigHandler.root_path+'/testdata/demo2.json'

print(file_path)

data = read_json_file(jsonpath)

data['headers']['Admin-Token']=get_token()

with open(file_path, 'w') as file:

json.dump(data, file)

data = read_json_file(jsonpath)

headers=data['headers']

reqdata =data['casedata'][0][0]

print(reqdata)

response1 = requests.post(url=url,headers=headers,data=json.dumps(reqdata))

print(response1.json())

运行结果如下:

手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下,接口自动化测试,python,数据库,前端,软件测试,自动化测试,自动化文章来源地址https://www.toymoban.com/news/detail-801678.html

到了这里,关于手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(42)
  • 手把手教你使用Flask框架构建Python接口以及如何请求该接口

    Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。 Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。Flask提供了基本的Web开发工具和应用程序的结构,但同时也允许开发者自由选择其他库

    2024年02月06日
    浏览(95)
  • 如何配置路由器接口IP,手把手教你配置DHCP

    目录 配置命令 DHCP:动态主机配置协议 路由器 RJ-45双绞线 (家用最常用) 非屏蔽线 最佳距离100m;民用1000M/S 商用100000M/S 数字信号--二进制 光纤 易折损 光信号 RJ-11 电话线 模拟信号 同轴电缆 数字信号 Huawei      Huawei部分为主机名,默认所有设备均为huawei;            

    2024年02月06日
    浏览(49)
  • 手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(三) ——XDMA读写DDR项目工程讲解和下板测试

    因最近想通过PCIE把数据从FPGA传到PC,借此机会和大家一起学习XDMA读写DDR 制作不易,记得三连哦,给我动力,持续更新!!! 完整工程文件下载:XDMA读写DDR工程   提取码:4sxh 在前两篇文章的学习中,我们已经成功配置了XDMA读写DDR所需的两个关键IP核,并深入学习了XDMA读写

    2024年03月12日
    浏览(41)
  • 分割一切?手把手教你部署SAM+LabelStudio实现自动标注

    最近Open-mmlab开源了Playground项目,将最近引起CV界轰动的SAM(Segment Anything Model)模型和Open-mmlab多个视觉框架相结合,可实现多种视觉任务的自动标注,本文将采用Open-mmlab的Playground开源项目,使用SAM和LabelStudio,实现分割任务的半自动标注。 1,Playground官方GitHub地址: https://git

    2024年02月06日
    浏览(68)
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中,我们需要把测试使用到的数据分离到文件中,如果单纯的写在我们的测试模块里面,不是一个好的设计,所以不管是什么类型的自动化测试,都是需要把数据分离出来的。当然分离到具体的文件里面,文件的形式其实有很多的,这里主要说明JSON的文件和

    2024年02月06日
    浏览(33)
  • 手把手教你用VUE写个例子访问后端WebApi的接口获取数据并显示出来

    本文接着上文《手把手叫你用VS2019写个WebApi(可以供网页、手机、电脑三端连接使用)从网页访问后端并在后端通过EF获取sqlserver中的数据》 https://blog.csdn.net/weixin_43935474/article/details/132497256?spm=1001.2014.3001.5501 上文中介绍了如何创建一个WebApi后端接口的例子,现在来写个网页端

    2024年02月06日
    浏览(38)
  • 手把手教你如何0基础编写基于AI机器视觉的--王者荣耀百里守约的自瞄程序,我家村头的傻X都能学会的教程!

    不介绍上面的框架了,直入主题: 先安装Anaconda,这是python环境的切换神器! 此处借用Anaconda安装教程 好 现在你安好了。打开cmd,直接输入conda看下是否有命令输出。如果没有,那就是path系统变量你没添加Anaconda。或者你在开始菜单,找到并打开anaconda Prompt (Anaconda3),可以看

    2024年02月14日
    浏览(55)
  • 手把手教你如何免费Midjourney Adobe FireFly AI绘图—Window本地快速部署stable diffusion AI绘图及使用指南(小白也能学会)

    最近看到朋友圈最近各种文字生图、图生图,眼花缭乱的图片AI生成,我也心动了,于是赶紧研究了下目前业内认为最强大的 Midjourney、Adobe FireFly ,本来想试用下,奈何全球人民太热情了, Midjourney 被薅羊毛薅的不行了,原本 Midjourney 刚注册可以免费玩25次,现在也被Midjour

    2024年02月04日
    浏览(45)
  • 从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(一)

    1、双击打开VS2022。 2、单击“创建新项目”,如下图。 3、选择“ASP.NET Core Web API”类型,然后单击“下一步”,如下图。 4、“项目名称”此处填写为“AllTestDemo”;“位置”此处放在E盘根目录;“解决方案名称”此处默认与“项目名称”保持一致;不勾选“将解决方案和项

    2023年04月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包