通过Python调用禅道API

2023-10-31

禅道API接口,非REST接口

调试版本:11.3

百度出来的100%都用不了(本篇除外...)。于是自己修改了网上代码,先get session,再post登录,最后调用产品列表验证,实测通过。

 1 import requests
 2 import json
 3 
 4 class zentao_cli(object):
 5 
 6     session = None   #用于实现单例类,避免多次申请sessionID
 7     sid = None
 8 
 9     def __init__(self, url, account, password, override = False):
10         self.url = url
11         self.account = account
12         self.password = password
13         self.session_override = override
14         self.pages = {
15             "sid": "/api-getSessionID.json",    #获取sid的接口
16             "login": "/user-login.json?zentaosid={0}",  #登录的接口
17             "get_product_list": "/product-index-no.json",
18         }
19         self.s = None
20         self.sid = None
21 
22     def req_get(self, url):
23         #请求并返回结果
24         web = requests.get(url)
25         if web.status_code == 200:
26             resp = json.loads(web.content)
27             if resp.get("status") == "success":
28                 return True, resp
29             else:
30                 return False, resp
31 
32     def req_post(self, url, body):
33         #请求并返回结果
34         res = requests.post(url=url, data=body)
35         if res.status_code == 200:
36             resp = json.loads(res.content)
37             if resp.get("status") == "success":
38                 return True, resp
39             else:
40                 return False, resp
41 
42     def login(self):
43         if self.s is None:
44             if not self.session_override and zentao_cli.session is not None:
45                     self.s = zentao_cli.session
46                     self.sid = zentao_cli.sid
47             else:
48                 #新建会话
49                 self.s = requests.session()
50                 res, resp = self.req_get(self.url.rstrip("/") + self.pages["sid"])
51                 if res:
52                     print("获取sessionID成功")
53                     self.sid = json.loads(resp["data"])["sessionID"]
54                     zentao_cli.sid = self.sid
55                     body = {'account': self.account, 'password': self.password, 'keepLogin[]': 'on', 'referer':self.url.rstrip("/") + '/my/'}
56                     login_res, login_resp = self.req_post(self.url.rstrip("/") + self.pages["login"].format(self.sid), body)
57                     if login_res:
58                         print("登录成功")
59                         zentao_cli.session = self.s
60 
61 
62     def get_product_list(self):
63         req_url = self.url.rstrip("/") + self.pages["get_product_list"]
64         res, resp = self.req_get(req_url + "?zentaosid=" + self.sid)
65         if res:
66             data = resp['data']
67             products = json.loads(data)['products']
68             return products.keys(), products.values()
69 
70 
71 if __name__ == "__main__":
72     cli = zentao_cli("http://xxx/zentao", "xxx", "xxx")
73     cli.login()
74     print(cli.get_product_list())

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

å¨è¿éæå¥å¾çæè¿°

  全套资料获取方式:点击下方小卡片自行领取即可

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过Python调用禅道API 的相关文章

  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 做测试不会 SQL?超详细的 SQL 查询语法教程来啦!

    前言 作为一名测试工程师 工作中在对测试结果进行数据比对的时候 或多或少要和数据库打交道的 要和数据库打交道 那么一些常用的sql查询语法必须要掌握 最近有部分做测试小伙伴表示sql查询不太会 问我有没有sql查询语法这一块的文档可以学习
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关

随机推荐

  • 19_2_Training & Deploying TensorFlowModels_%%writefile UsageError_colab_文件名含有空格_No dashboard_gcp

    19 Training and Deploying TensorFlowModels at Scale walk目录 TensorFlow Serving requests REST gRPC Docker Google API Clien
  • 【mcuclub】水质检测模块-TDS

    一 实物图 型号 TDS 二 原理图 编号 名称 功能 1 GND 供电电压负极 2 VCC 供电电压正极 3 AO 模拟信号输出引脚 三 简介 TDS Total Dissolved Solids 中文解释为溶解性总固体 又称总含盐量 定
  • 哈工大操作系统实验3:进程运行轨迹的跟踪与统计

    前言 这个博客鸽了好久了 一来自己在准备数学建模 二来自己还是比较难以控制自己啊 还是会忍不住自己玩手机啊 一定要克制住自己啊 然后说一下这个实验吧 首先还是的对自己痛骂一下为啥么我总是犯一些低级错误 最让我头痛的一个bug竟然是if语句如
  • nfs服务器性能测试,nfs性能测试报告

    测试环境 软件nfs 1000M内网环境 测试说明 所有文件写入均在nfs客户端写入共享的目录中 然后在本地一个单独目录同样写入 比较二者时间及速度 1 大文件写入测试 创建5G的单个文件 Nfs 5000 0 records in 500
  • MATLAB画图练习

    这次画一些在数学建模中比较实用的图 掌握了其中的画图技巧 在比赛时改变一些参数就可以套用了 1 画极坐标图 clc clear clf theta 0 0 01 2 pi r 5 cos 10 theta polar theta r 2 画
  • Leveldb源码分析--13

    8 FilterPolicy Bloom之2 8 5 构建FilterBlock 8 5 1 FilterBlockBuilder 了解了filter机制 现在来看看filter block的构建 这就是类FilterBlockBuilde
  • 推挽电路和开集电路介绍

    推挽输出 Push Pull Output 推挽输出结构是由两个MOS或者三极管收到互补控制的信号控制 两个管子时钟一个在导通 一个在截止 如图1所示 图1 推挽输出结构 推挽输出的最大特点是可以真正能真正的输出高电平和低电平 在两种电平下
  • Jupyter

    jupyter安装conda环境 方法一 cmd进入环境 activate Env 运行 conda install nb conda kernels 方法二 首先安装ipykernel conda install ipykernel 在虚
  • 解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with '\xc1'

    学习编写Py程序时突然报错 SyntaxError Non UTF 8 code starting with xbb in file C Users v Desktop Test py on line 4 but no encoding d
  • 请求转发和重定向

    请求转发是在一次http请求中完成的 重定向是在多次的http请求中完成的 所以之后的request getParameter 得不到结果 RequestDispatcher是通过调用HttpServletRequest对象的getRequ
  • SeekBar.OnSeekBarChangeListener解析

    public static interface SeekBar OnSeekBarChangeListener android widget SeekBar OnSeekBarChangeListener 概述 当进度改变后用于通知客户端的
  • Qt中ui设计内容改变后,编译运行时新增控件无法显示问题

    解决方法 两种 第一种 在Qt的项目中 有一个Shadow build选项 取消勾选 然后重新编译运行 即可 第二种 不取消勾选Shadow build 在上面的图中可以看到 概要 中有一个 构建目录 复制这个路径 到文件资源管理器中输入这
  • OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性

    OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性 OpenText Exceed TurboX 是一种安全的虚拟桌面解决方案 可实现现代混合工作 利用 Exceed TurboX 混合云
  • 2048游戏C语言代码

    听说2048游戏实现起来很easy 所以今天就试了试 确实不太难 要想编的很成功 也不是太容易 有很多细节需要考虑 下面是我自己设计的代码 估计里面会漏洞百出 希望路过大神能指点一二 include
  • 学习笔记-基数排序

    基数排序 将一个一维数组从大到小排列 基数排序是桶排序的扩展 它是一种稳定的排序方法 也就是说 排序之前相同大小的数字的位置次序在排序后并没有发生改变 同时 基数排序是一种用空间换时间的排序方法 当数据量过大时 java的堆内存耗尽 方法就
  • 如何使用python读取excel(一)

    在进行操作前 我们先熟悉一下excel表格的基本术语 工作簿 workbook 包含多个工作表的 表单 worksheet 指一个工作簿里面的每个表单 行 row 列 column 单元格 cell 这里我们使用openpyxl读取数据 查
  • Win10搭建Docker Desktop并安装vim

    Win10搭建Docker Desktop 1 介绍 Docker Desktop是适用于Windows的Docker桌面 是Docker设计用于在Windows 10上运行 它是一个本地 Windows 应用程序 为构建 交付和运行doc
  • 怎么查看虚拟机的IP地址?

    第一个方法ifconfig 先登录自己的虚拟机账号 进入桌面 然后右键 点击Open Terminal 输入ifconfig 然后回车 就可以了 第二种方法 也是上面的步骤 输入 ip addr也是同样的效果
  • 【Java基础篇

    个人主页 兜里有颗棉花糖 欢迎 点赞 收藏 留言 加关注 本文由 兜里有颗棉花糖 原创 收录于专栏 JavaSE primary 本专栏旨在分享学习JavaSE的一点学习心得 欢迎大家在评论区讨论 继承允许一个类继承另一个类的属性和方法 并
  • 通过Python调用禅道API

    禅道API接口 非REST接口 调试版本 11 3 百度出来的100 都用不了 本篇除外 于是自己修改了网上代码 先get session 再post登录 最后调用产品列表验证 实测通过 1 import requests 2 import