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

相关文章

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt