一. 从数据库中读取全部接口,并写入yaml文件

数据库中的数据存储格式如下图:

import pymysql
import os
import json
# from ruamel import yaml
import yaml #第一步:从数据库中取出所有接口记录存成一个字典
def query(sql):
con=pymysql.connect(host='192.168.249.152',user='root',password='',db='test_api',charset='utf8')#连接数据库
cur=con.cursor()#获取游标
cur.execute(sql)#执行sql
list = []
for id,pathGroup,path,param,method in cur.fetchall():#查询记录,fetchall用法参见注释1
ever = {
'pathgroup': pathGroup,
'path': path,
'param': param if param == '' else json.loads(param),
'method': method
} #将每一个接口形成一个字典格式,param如果写成'param':param的话会有坑(坑1)
#print(ever) list.append(ever)#将每一个接口字典变成列表元素 坑2
result={'content':list} #再变成一个大字典存起来,为了后面写入yaml文件的是一个字典
cur.close()
con.close()
return result #返回大字典 #第二步:写入yaml文件 result_yaml=query('select * from t_api')#调用接口将返回的所有数据存起来(参数为查询数据库所有数据)
print(result_yaml)#打印出来看看 a=os.path.dirname(os.path.realpath(__file__))#os.path.dirname返回目录,os.path.realpath返回绝对路径
print('a===',a)
yamlpath=os.path.join(a,'testcase.yaml')#os.path.join拼接出yaml文件的路径 with open(yamlpath,'w',encoding='utf-8') as f:#w是写入文件,先删除原文件,再重新创建并写入
yaml.dump(result_yaml,f)#yaml.dump把生成的yaml文档写到文件里,yaml.dump接收的第二个参数一定要是一个文本文件或二进制文件 # if __name__=='__main__':
# query('select * from t_api')

注释1:

fetchall()相关解释:原文地址:https://www.wukong.com/answer/6591280609824342286/?iid=40708017633&app=news_article&share_ansid=6591280609824342286&app_id=13&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share

为了方便演示,我这里新建了一个test数据表,有id,university,name这3个字段,主要内容如下:

查询数据,这里主要用到fetchall、fetchone、fetchamany这3个函数,其中fetchall是查询满足条件的所有记录,fetchone是查询满足条件的第一条记录,fetchamany是自定义查询满足条件的记录,测试代码如下:

程序运行截图如下,已经成功查询出4条记录:

坑1:

这里的param需要写成:'param': param if param == '' else json.loads(param),param如果写成'param':param的话输出的结果就是

{'pathgroup': 'arrange', 'path': 'arrange/kanban/getDeptList', 'param': '{'date': '2019-07-12'}', 'method': 'post'}  ,param的value变成了字符串,这样的话写入到yaml文件也是个字符串,在后续解析yaml文件的时候不能解析,这里的value必须是个字典格式,

所以写成了json.loads(param),意思是将字符串转换成字典格式

坑2:

这里最开始写成了:a=list.append(ever),这样写是错误的,list.append()直接写就行不需要前面加个变量

Python--代码1(接口测试:测试用例从数据库读取写到yaml文件中)的更多相关文章

  1. day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

    一.使用.yaml格式的文件直接可以存放字典类型数据,如下图,其中如果有-下一行有缩进代表这是个list,截图中是整体是一个list,其中有两部分,第二部分又包含另外一个list 二.单元测试:开发自 ...

  2. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

  3. c#用log4Net将日志写入到Oracle数据库,并写入到文件中

    原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...

  4. 一篇文章告诉你Python接口自动化测试中读取Text,Excel,Yaml文件的方法

    前言 不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml.今天讲讲如何读取文件数据 Python也可以读取ini文件,传送门 记住一点:测试的数据是不能写死在代码里面 ...

  5. python模块:xlsxwriter和xlrd相结合读取、写入excel文件

    python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...

  6. Python学习笔记_从CSV读取数据写入Excel文件中

    本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...

  7. 34)PHP,PHP从数据库读取数据并在html中显示

    首先是我的数据库截图: 然后展示我的php文件: b.php文件: <?php $link= mysqli_connect('localhost','root','root'); // mysq ...

  8. c++ 读取不了hdf5文件中的字符串

    问题描述: 在拿到一个hdf5文件,想用c++去读取文件中的字符串,但是会报错:read failed ps: c++读取hdf5的字符串方法见:https://support.hdfgroup.or ...

  9. pg_dumpall - 抽出一个 PostgreSQL 数据库集群到脚本文件中

    SYNOPSIS pg_dumpall [ option...] DESCRIPTION 描述 pg_dumpall 是一个用于写出("转储")一个数据库集群里的所有 Postgr ...

随机推荐

  1. less简介及其编译原理

    一.less环境安装 ①首先需要在电脑上安装nodejs,一般会内置npm,利用以下命令可以检测: ②利用npm在线安装less,运行  npm install –g less ③查看是否安装成功,L ...

  2. 23-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 加入消息处理

    https://www.cnblogs.com/yangfengwu/p/11203546.html 先做接收消息 然后接着 public class MainActivity extends App ...

  3. 洛谷P1265 公路修建题解

    题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便.为解决这一“行路难”的问题,政府决定修建公路.修建公路的任务由各城市共同完成. 修建工程分若干轮完成.在每一轮中,每个城市选择一个 ...

  4. 微信小程序敏捷开发实战

    wxml->wcc编译->javascript 用户javascript-> wawebview->view 小程序原理 微信 小程序-> webview appserv ...

  5. allure-pytest 测试报告分享给大家

    allure-pytest生成测试报告,经过实践得出如下经验,参考了很多大神的博客一并附上 1.安装allure-pytest pip install allure-pytest 2.执行命令生成js ...

  6. 使用JS计算前一天和后一天

    使用JS实现前一天和后一天 首先,我们先在html中写两个按钮来进行简单操作 <button onclick="Before()">前一天</button> ...

  7. zookeeper安装运行(docker)

    拉取镜像docker pull zookeeper:latest 获取镜像基本信息docker inspect zookeeper mkdir /opt/zookeeper -p vim /opt/z ...

  8. 清理收藏夹中的json

    1.json的字符串与对象转换 $.parseJson(str)与JSON.parse(str) 返回值是true.另:json对象和字符串的相互转换 JSON.stringify(obj) 将JSO ...

  9. Gitlab修改用户密码

    sudo gitlab-rails console production > user=User.where(name: "root").first > user.pa ...

  10. ubuntu16.04 安装使用meld及问题

    本文链接:https://blog.csdn.net/ai_liuliu/article/details/95504095安装meldsudo apt-get install meld启动meld方法 ...