Python3脚本编程:解析Yapi接口文档组成excel测试用例

本文主要是介绍Python3脚本编程:解析Yapi接口文档组成excel测试用例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:是不是总要说点什么,才能显得正式?好吧,我也很无奈,直接上代码它不香么? 

'''
Created on 2020年3月11日@author: qguan
'''import json
from utils.HandleRequests import do_request
from utils.HandleExcel import Write_excel
import conftest# 获取接口文档项目id
pro_url='接口文档地址'
# 接口文档登录地址
login_url='接口文档登录地址'
# 接口文档用户信息
login_info={"email":"账号","password1":"密码"}
# 用户登录接口文档地址
do_request("POST", login_url, login_info, is_json=True)# 登录后获取接口文档所有项目
res0=do_request("get", pro_url)
pro_info=res0['data']['list']def get_pro_name():'''获取项目名称list'''name_list=[]# 遍历获取所有项目名称加入listfor i in range(len(pro_info)):pro_name=pro_info[i]['name']name_list.append(pro_name)return name_listdef get_pro_id():'''根据获取项目名称list,输入选择的项目,获取id'''print(get_pro_name())pro_name=input("根据以上列出的项目名称输入:")# 遍历项目,通过输入的项目名,获取项目idfor i in range(len(pro_info)):pro_job=pro_info[i]['name']if pro_job==pro_name:pro_id=pro_info[i]['_id']return pro_iddef get_jk_info(pro_id):'''通过项目id获取接口信息'''# 获取项目接口信息in_url='接口文档地址?page=1&limit=80&project_id={}'.format(pro_id)pro_url='接口文档地址/get?id={}'.format(pro_id)# 获取项目接口信息res1=do_request("get", in_url)# 获取项目信息res2=do_request('get', pro_url)# 提取测试的路径env=res2['data']['env']for j in range(len(env)):if env[j]['name']=='test':env_url=env[j]['domain']else:env_url="本地测试环境"# 接口信息jk_list=[]jk_list.append(env_url)# 接口关键信息:地址、方法、名称、及idinterface=res1['data']['list']for i in range(len(interface)):method=interface[i]['method']path=interface[i]['path']title=interface[i]['title']jk_id=interface[i]['_id']jk_info='-'.join((path,title,method,str(jk_id)))jk_list.append(jk_info)return jk_listdef get_jk_body(jk_id):'''通过接口id,获取接口请求参数'''body_url='接口文档地址/get?id={}'.format(jk_id)res=do_request('get', body_url)# 请求参数body_info=res['data'].get('req_body_other')res_q={}if body_info: # 如果有参数res1=json.loads(body_info)if res1.get('properties'):for k in res1['properties'].keys():res_q[k]=""return res_qdef write_to_excel(jk_info,file_path):'''解析接口信息数据 ,写入excel'''ws=Write_excel(file_path)count=1 # 列数caseid=0 # 用例编号env=jk_info[0]for el in jk_info[1:]:count+=1caseid+=1jk_list=el.split('-')path=jk_list[0]title=jk_list[1]method=jk_list[2]jk_id=jk_list[3]
#         print(path,title,method,jk_id)if method=='POST':params=get_jk_body(jk_id)ws.write(count, 1, caseid)ws.write(count, 2, title)ws.write(count, 3, env)ws.write(count, 4, path)ws.write(count, 5, method)if params: # 如果参数不为空ws.write(count, 6, str(params).replace("'", '"'))else:ws.write(count, 1, caseid)ws.write(count, 2, title)ws.write(count, 3, env)ws.write(count, 4, path)ws.write(count, 5, method)if __name__ == '__main__':pro_id=get_pro_id()jk_info=get_jk_info(pro_id)file_path=conftest.data_path+"interface_001interface_001.xlsx"write_to_excel(jk_info,file_path)

**日拱一卒无有尽,功不唐捐终入海!**

这篇关于Python3脚本编程:解析Yapi接口文档组成excel测试用例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043810

相关文章

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当