03 提效工具之绕过swagger&yapi接口文档登录

简介: 03 提效工具之绕过swagger&yapi接口文档登录

回顾


上两篇文章我们介绍了swagger-ui文档转换jmx脚本&yapi文档转换jmx脚本给jmeter使用的方式,已经可以覆盖大多数公司的接口文档转换,可以帮助我们的测试攻城狮解放双手,节省很多时间!

但是还有一个问题,就是有的公司的接口文档是需要登录权限的,我们进行脚本转换时,因为没有登录,导致接口原始数据下载失败,我们的转换工具也无能为力,必须人手动登录成功后下载原始swaggerjson接口数据!


愿景


一键自动生成接口测试脚本,解放双手,降低纯手力劳动占比,进而给自己提供更多的时间去思考、理解产品和设计更多"聪明"的用例


实现效果


今天我们以yapi接口文档为例,写代码自动登录,让我们的脚本去下载接口原始数据然后进行jmx转换!

  • 数据导出选择swaggerjson

  • 查看下载链接的格式

https://apidock.test.com/api/plugin/exportSwagger?type=OpenAPIV2&pid=29&status=all&isWiki=false
  • 我们在控制台F12查看下载请求【需要yapi_token】
  • 接下来我们去获取yapi登录的令牌
def yapi_cookies():
    url = "https://apidock.test.com/api/user/login_by_ldap"
    payload = "{\"email\":\"test1\",\"password\":******\"\"}"
    headers = {
        'Content-Type': 'application/json; charset=utf-8',
        'Connection': 'keep-alive'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    log.info(response.headers['Set-Cookie'].split(';')[0])
    return response.headers['Set-Cookie'].split(';')[0]
  • 接下来我们写个请求去下载文件
def get_yapi_json(pid, path):
    url = "https://apidock.test.com/api/plugin/exportSwagger?type=OpenAPIV2&pid={}&status=all&isWiki=false".format(
        pid)
    headers = {
        'Content-Type': 'application/json; charset=utf-8',
        'Connection': 'keep-alive',
        'cookie': '{}; _yapi_uid=3480'.format(yapi_cookies())
    }
    log.info(headers)
    response = requests.request("GET", url, headers=headers)
    data = json.loads(response.text)
    title = data.get("info")["title"]
    log.info(title)
    with open("{}/data.json".format(path), 'w', encoding='utf-8') as fp:
        fp.write(json.dumps(data, indent=4, ensure_ascii=False))
    return data
  • 安装依赖
pip install -U swaggerjmx
  • 展示代码
# -*- coding: utf-8 -*-
from swaggerjmx.convert import conversion
from swaggerjmx.settings import Settings as ST
#  swagger_url_json_path 
#  从yapi获取的json字符串
ST.swagger_json = get_yapi_json(pid, path)
#  report_path
ST.report_path = 'jmx'
# 开始转换
conversion()
  • 生成脚本文件
  • 脚本展示

以上便是 swaggerjmx 的基本用法介绍。

如果您有发现错误,或者您对 swaggerjmx 有任何建议,欢迎到 swaggerjmx Issues 发表,非常感谢您的支持。您的反馈和建议非常宝贵,希望您的参与能帮助 swaggerjmx 做得更好。

仓库地址:

下集预告

  • 可视化部署
  • 更加便捷的使用(赋能)
相关文章
|
10月前
|
Oracle 关系型数据库 Java
程序员必备推荐一款与Swagger媲美的数据库文档生成工具
程序员必备推荐一款与Swagger媲美的数据库文档生成工具
90 0
|
5月前
|
前端开发 Java API
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
本文提供了一份详细的Swagger接口文档生成工具的使用教程,包括了导入依赖、配置类设置、资源映射、拦截器配置、Swagger注解使用、生成接口文档、在线调试页面访问以及如何设置全局参数(如token),旨在帮助Java开发者快速上手Swagger。
1834 0
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
|
8月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
|
9月前
|
前端开发 Java 程序员
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
10月前
|
前端开发 IDE Java
比Swagger更好用的工具
比Swagger更好用的工具
290 2
比Swagger更好用的工具
|
10月前
|
API
23_Swagger接口文档
23_Swagger接口文档
89 0
|
10月前
|
数据可视化 测试技术 API
Swagger--API表达工具
Swagger--API表达工具
96 2
|
10月前
|
前端开发 应用服务中间件 nginx
使用swagger和knife4j生成的接口文档在浏览器中输入地址后报404错误
使用swagger和knife4j生成的接口文档在浏览器中输入地址后报404错误
617 0
|
8月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成