python接口自动化(十四)--session关联接口(详解)

简介: 上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下。

简介


  

上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下。


session简介



1、通过help方法查看帮助文档,截图一部分,后面省略了,有兴趣的自己可以敲一下看看


1232840-20190403162623701-1650488720.png


2、参考代码


 # coding:utf-8
 import requests
 help(requests.session())


使用session登录



1、使用session登录只需在登录的基础上稍做修改,即可

1232840-20190409113139413-1149291392.png


2、参考代码


# coding:utf-8
import requests
# 先打开登录首页,获取部分session
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
           }  # get方法其它加个ser-Agent就可以了
d = {"j_username": "admin",
     "j_password": "111111",
     "from": "",
     "Submit": u"登录",
     "remember_me": "on"
     }
s = requests.session()
r = s.post(url, headers=headers, data=d)
#print (r.content.decode('utf-8'))


保存编辑



1、先打开新建任务,手动输入任务名称和选择下边选项后,打开fiddler抓包,然后点击“确定”


1232840-20190409112640867-1436217274.png


fiddler抓包


1232840-20190409112939013-755978808.png


2、把body的参数内容写成字典格式

1232840-20190409132923437-1230626099.png


参考代码:


body = {"name":"北京-宏哥1",
         "mode": "hudson.model.FreeStyleProject",
        "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
        "json":{"name":"北京-宏哥1",
                 "mode": "hudson.model.FreeStyleProject",
                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
         }
 }


3、用上面登录保存的session继续发送post请求,来新建任务

1232840-20190409133031677-6251901.png


4、执行后,查看所有任务就多了一条新增的了

1232840-20190409132752754-1308665219.png


5、运行结果部分截图:


1232840-20190409135811981-1266307704.png


6、粘贴到记事本修改后缀查看:


1232840-20190409135849947-1352095135.png


参考代码



 # coding:utf-8
 import requests
# 先打开登录首页,获取部分session
 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 headers = {
             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
            }  # get方法其它加个ser-Agent就可以了
 d = {"j_username": "admin",
      "j_password": "111111",
     "from": "",
      "Submit": u"登录",
      "remember_me": "on"
     }
 s = requests.session()
 r = s.post(url, headers=headers, data=d)
 #print (r.content.decode('utf-8'))
 # 正则表达式提取账号和登录按钮
 import re
 t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))   # 用python3的这里r.content需要解码
 print (t[0])
 print (t[1])
 #新建任务
 url1 = "http://localhost:8080/jenkins/createItem"
 body = {"name":"北京-宏哥1",
         "mode": "hudson.model.FreeStyleProject",
         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
         "json":{"name":"北京-宏哥1",
                "mode": "hudson.model.FreeStyleProject",
                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
         }
 }
 r2 = s.post(url1, data=body, verify=False)
 print (r2.content.decode('utf-8'))


这里我是用新建任务写的案例,小伙伴可以试下Jenkins里边其他的关联接口


小结



小伙伴都看到了吧,session关联接口就是这么简单!!!赶快动起来吧。想要学习的小伙伴可以用博客园来练习一下,遇到问题欢迎打扰和沟通!

相关文章
|
1月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
94 1
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
201 61
|
8天前
|
API 文件存储 数据安全/隐私保护
python 群晖nas接口(一)
这段代码展示了如何通过群晖NAS的API获取认证信息(SID)并列出指定文件夹下的所有文件。首先,`get_sid()`函数通过用户名和密码登录NAS,获取会话ID(SID)。接着,`list_file(filePath, sid)`函数使用该SID访问FileStation API,列出给定路径`filePath`下的所有文件。注意需替换`yourip`、`username`和`password`为实际值。
51 18
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
70 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
7天前
|
API Python
python泛微e9接口开发
通过POST请求向指定IP的API注册设备以获取`secrit`和`spk`。请求需包含`appid`、`loginid`、`pwd`等头信息。响应中包含状态码、消息及`secrit`(注意拼写)、`secret`和`spk`字段。示例代码使用`curl`命令发送请求,成功后返回相关信息。
29 5
|
7天前
|
API 文件存储 Python
python 群晖nas接口(二)
这段代码展示了如何通过API将文件上传到群晖NAS。它使用`requests`库发送POST请求,指定文件路径、创建父级目录及覆盖同名文件的参数,并打印上传结果。确保替换`yourip`和`sid`为实际值。
25 2
|
1月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
109 15
|
1月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
69 3
|
4月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
97 4
|
28天前
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
101 11

热门文章

最新文章