首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
41 篇文章
1
python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)
2
python接口自动化(三)--如何设计接口测试用例(详解)
3
python接口自动化(四)--接口测试工具介绍(详解)
4
python接口自动化(六)--发送get请求接口(详解)
5
python接口自动化(五)--接口测试用例和接口测试报告模板(详解)
6
python接口自动化(七)--状态码详解对照表(详解)
7
python接口自动化(八)--发送post请求的接口(详解)
8
python接口自动化(十)--post请求四种传送正文方式(详解)
9
python接口自动化(九)--python中字典和json的区别(详解)
10
python接口自动化(十一)--发送post【data】(详解)
11
python接口自动化(十二)--https请求(SSL)(详解)
12
python接口自动化(十三)--cookie绕过验证码登录(详解)
13
python接口自动化(十四)--session关联接口(详解)
14
python接口自动化(十五)--参数关联接口(详解)
15
python接口自动化(十六)--参数关联接口后传(详解)
16
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
17
python接口自动化(十八)--重定向(Location)(详解)
18
python接口自动化(十九)--Json 数据处理---实战(详解)
19
python接口自动化(二十)--token登录(详解)
20
python接口自动化(二十一)--unittest简介(详解)
21
python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
22
python接口自动化(二十三)--unittest断言——上(详解)
23
python接口自动化(二十四)--unittest断言——中(详解)
24
python接口自动化(二十五)--unittest断言——下(详解)
25
python接口自动化(二十六)--批量执行用例 discover(详解)
26
python接口自动化(二十七)--html 测试报告——上(详解)
27
python接口自动化(二十八)--html测试 报告——下(详解)
28
python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)
29
python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)
30
python接口自动化(三十一)--html测试报告通过邮件发出去——下(详解)
31
python接口自动化(四十)- logger 日志 - 下(超详解)
32
python接口自动化(四十一)- 发xml格式参数的post请求(超详解)
33
python接口自动化(四十二)- 项目结构设计之大结局(超详解)
34
python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
35
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
36
python接口自动化(三十四)-封装与调用--函数和参数化(详解)
37
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
38
python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
39
python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
40
python接口自动化(三十八)-python操作mysql数据库(详解)
41
python接口自动化(三十九)- logger 日志 - 上(超详解)

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

简介

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

session简介

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

2、参考代码

代码语言:javascript
复制
1 # coding:utf-8
2 import requests
3 help(requests.session())

使用session登录

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

2、参考代码

代码语言:javascript
复制
# 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抓包,然后点击“确定”

fiddler抓包

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

参考代码:

代码语言:javascript
复制
1 body = {"name":"北京-宏哥1",
2         "mode": "hudson.model.FreeStyleProject",
3         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
4         "json":{"name":"北京-宏哥1",
5                 "mode": "hudson.model.FreeStyleProject",
6                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
7 
8         }
9 }

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

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

5、运行结果部分截图:

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

参考代码

代码语言:javascript
复制
 1 # coding:utf-8
 2 import requests
 3 # 先打开登录首页,获取部分session
 4 url = "http://localhost:8080/jenkins/j_acegi_security_check"
 5 headers = {
 6             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 7            }  # get方法其它加个ser-Agent就可以了
 8 d = {"j_username": "admin",
 9      "j_password": "111111",
10      "from": "",
11      "Submit": u"登录",
12      "remember_me": "on"
13      }
14 
15 s = requests.session()
16 r = s.post(url, headers=headers, data=d)
17 #print (r.content.decode('utf-8'))
18 # 正则表达式提取账号和登录按钮
19 import re
20 t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))   # 用python3的这里r.content需要解码
21 print (t[0])
22 print (t[1])
23 #新建任务
24 url1 = "http://localhost:8080/jenkins/createItem"
25 body = {"name":"北京-宏哥1",
26         "mode": "hudson.model.FreeStyleProject",
27         "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
28         "json":{"name":"北京-宏哥1",
29                 "mode": "hudson.model.FreeStyleProject",
30                 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
31 
32         }
33 }
34 
35 r2 = s.post(url1, data=body, verify=False)
36 print (r2.content.decode('utf-8'))

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

小结

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

下一篇
举报
领券