环境:python3,jenkins服务器,jenkins服务A和服务B
背景:两个服务都应用于实际工作场景,通过接口达到预期结果,形成一定程度的单元测试闭环。
实际难题:
1.在非异常流程中,B服务调起必须在A服务之后,且A服务应执行成功,实际代码稍后会贴出。
2.解决python代码内调用jenkins
3.解决直接调用jenkins带token的url权限问题,接口返回403
4.解决jenkins登录重定向导致的无法取到JSESSIONID问题
解决方法:
1.判断前置条件,确认是否调起-
2.python代码内调用jenkins-红线为有效调起的核心-被调起服务一定要设置token
3.调用jenkins登录接口取JSESSIONID-
4.jenkins登录重定向-
请求接口时,不允许重定向即可,代码如下:
req2 = session.post(url='https://172.168.1.1/8080/jenkins/j_acegi_security_check', data=data,
allow_redirects=False, cookies=cookies2,
headers=headers2) # allow_redirects=False 禁止重定向。
JSESSIONID = req2.cookies['JSESSIONID']
巨大的雷坑-
1.持续更新中。。。
order_id
cd /opt/py3venv/xsh_order
source /opt/py3venv/bin/activate
python pay_orderNo.py ${environment} ${_orderNo}