httprunner3.x总结18 - debugtalk.py示例:获取各路token

第一种策略:
登录的token,可以从单独写个用例,登录里面包含了所有需要用到的接口的token,然后其他用例调用登录,然后利用脚本间传参,传入token即可解决,但是,要符合以下内容顺序:
1、测试前置:调用其他用例准备测试数据,用例1,用例2,用例3,因为用例间都保证的单独运行不报错,所以不用担心用例间的各种关联问题。
2、调用登录用例
3、调用你要验证的接口。

第二种策略:
在debug中写入token,因为httprunenr是基于requests.session去执行的,所以后续用例不再需要调用登录,只需要传入所需要的token即可。
debug_talk.py优化下登录:

import pytest
import requests
from bs4 import BeautifulSoup

@pytest.fixture(autouse=True)
def get_token(index):
    s = requests.Session()
    r1 = ss.get(url = "xxx", verify=False)
    execution = BeautifulSoup(res.text, "lxml").find(attrs={"name":"execution"})["value"]
    r2 = s.post(url='http://xxx', data=f'admin: "$admin", passwd:"$passwd", excute:{execution}')
    r3 = s.post(url="http://xxx", data="xxx")
    r4 = s.post(url="http://xxx", data="xxx")
    token_cosmosgis = r2.text
    token_fusgis = r3.text
    token_genex = r4.text
    token = (token_cosmosgis, token_fusgis, token_genex)
    return token[index]

if __name__ == '__main__':
    get_token()

0607优化的最终结果,避免了调用登录用例:

import requests
from bs4 import BeautifulSoup
from pathlib import Path

def get_token(index):
	# 从.env获取值
	file = Path("./.env").open()
	host = [i for i in file][-1].split("=")[1]
	name = [i for i in file][1].split("=")[1].strip()
	password = [i for i in file][1].split("=")[2].strip()
	# 以临时会话session的形式登录
	s = requests.session()
	data = {
			"username": admin, 
			"password": password, 
			"excution": BeautifulSoup(s.get().text, "lxml").find(attrs={"name":"excution"})["value"],
			"_evxxx": "xxx",
			"submit": "登录",
			}
	s.post(url=f"{host}/cas/login", data=data, verify=False)
	# 登录后开始获取各种token
	fxxxgis = s.get(f"{host}/fxxxgis/csrftoken.do").json().get("_csrf")
	cxxxgis = s.get(f"{host}/cxxxgis/csrftoken.do").json().get("_csrf")
	li = [fxxxgis, cxxxgis]
	return li[index]

if "__name__" == "__main__":
	a = get_token(0)
	print(a)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_焦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值