美文网首页py接口自动化python接口自动化
python接口自动化(十四)--session关联接口(详解)

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

作者: 北京_宏哥 | 来源:发表于2019-11-26 16:57 被阅读0次

    简介

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

    session简介

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

    2、参考代码

    1# coding:utf-82import requests3help(requests.session())

    使用session登录

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

    2、参考代码

    # coding:utf-8import 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的参数内容写成字典格式

    参考代码:

    1body = {"name":"北京-宏哥1",2"mode":"hudson.model.FreeStyleProject",3"Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",4"json":{"name":"北京-宏哥1",5"mode":"hudson.model.FreeStyleProject",6"Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"78        }9}

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

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

    5、运行结果部分截图:

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

    参考代码

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

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

    小结

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

    相关文章

      网友评论

        本文标题:python接口自动化(十四)--session关联接口(详解)

        本文链接:https://www.haomeiwen.com/subject/qklywctx.html