Python如何获取csrf_token

前言

突然接到一个任务,将Jenkins与我们的自动化测试平台集成进来,自动化平台时基于python+django的。这就需要写一个python脚本去调用平台的runsuite接口,由Jenkins去触发。
通过Charles抓取到相应的接口后执行起来一直报403,调查后发现是由于Django平台设置的csrf_token一直在变化.

解决办法

用postman运行接口时,可以在postman的Tests项下加入如下js代码:

var csrf_token = postman.getResponseCookie("csrftoken").value
postman.clearGlobalVariable("csrftoken");
postman.setGlobalVariable("csrftoken", csrf_token);

编写python脚本时,可通过以下code实现:

import requests
url = 'http://172.16.4.1x/runTestSuite'
client = requests.session()
client.get(url)
if 'csrftoken' in client.cookies:
    csrftoken = client.cookies['csrftoken']
else:
    csrftoken = client.cookies['csrf']
print (csrftoken)

你可能感兴趣的:(python)