如何用python脚本实现一次获取token,多次使用token

这篇文章主要介绍了如何用python脚本实现一次获取token,多次使用token问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.两种格式的文件

1)编写配置文件Token.yaml(暂时为空),用来存放token值

另外:用命令:pip3 install ruamel.yaml安装ruamel.yaml模块,用以去除yaml文件中的大括号

图片

2)编写配置文件access_token.yml,把token值写到配置文件中的关键代码如下:

  1. # 把token值写到配置文件access_token.yml中

  2. def write_token(res):

  3. curPath = os.path.abspath(os.path.dirname(__file__))

  4. yamlPath = os.path.abspath(os.path.dirname(curPath) + os.path.sep + "configs/access_token.yml")

  5. # yamlPath = os.path.dirname(os.path.abspath('.'))+'/data/access_token.yml'

  6. # res = json.loads(res)

  7. tokenValue = {

  8. 'access_token': res["access_token"]

  9. }

  10. with open(yamlPath, 'w', encoding='utf-8') as f:

  11. yaml.dump(tokenValue, f)

  12. logger.info("\n token值已保存至配置文件中")

2.编写鉴权文件testingedu_auth.py

用于获取token值并存储token值:

  1. #!/usr/bin/env python

  2. # -*- coding:utf-8 -*-

  3. # 用pip3命令安装

  4. import requests

  5. from ruamel import yaml

  6. def test_testingedu_auth():

  7. url = "http://www.XXX.com.cn/XXX/HTTP//auth"

  8. headers = {"Content-Type": "application/json"}

  9. # 发送请求

  10. response = requests.post(url=url, headers=headers)

  11. print(response.text)

  12. print(response.status_code)

  13. print(response.json()["token"])

  14. # return response.json()["token"]

  15. # 把token值写入配置文件中

  16. # cur = os.path.dirname(os.path.realpath(__file__))

  17. # p = os.path.join(cur, 'Token.yaml')

  18. yamlpath = r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml'

  19. tokenValue = {

  20. 'token': response.json()["token"],

  21. }

  22. with open(yamlpath, "w", encoding="utf-8") as f:

  23. yaml.dump(tokenValue, f, Dumper=yaml.RoundTripDumper)

  24. if __name__ == "__main__":

  25. test_testingedu_auth()

运行结果:

图片

查看Token.yaml中的值:

图片

3.编写获取token值的脚本:get_token.py

方便其他接口调用(登录、查看和退出)

  1. #!/usr/bin/env python

  2. # -*- coding:utf-8 -*-

  3. import yaml

  4. import os

  5. # cur = os.path.dirname(os.path.realpath(__file__))

  6. def get_token(yamlName = "Token.yaml"):

  7. # 从配置文件中读取token值,并返回

  8. p = os.path.join(r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml')

  9. f = open(p)

  10. a = f.read()

  11. t = yaml.load(a)

  12. f.close()

  13. return t["token"]

  14. if __name__ == "__main__":

  15. get_token()

4.编写登录接口脚本

testingedu_login.py

  1. #!/usr/bin/env python

  2. # -*- coding:utf-8 -*-

  3. import requests

  4. from common.get_token import get_token

  5. def testingedu_login():

  6. url = "http://www.XXX.com.cn/XXX/HTTP//login?username=XXX&password=XXX"

  7. headers = {"token": get_token()}

  8. response = requests.post(url=url, headers=headers)

  9. print("返回体是:", response.text)

  10. print("状态码是:", response.status_code)

  11. if __name__ == "__main__":

  12. testingedu_login()

运行结果:

图片

5.编写查看接口脚本

testingedu_info.py

  1. #!/usr/bin/env python

  2. # -*- coding:utf-8 -*

  3. import requests

  4. from common.get_token import get_token

  5. def testingedu_info():

  6. url = "http://www.XXX.com.cn/XXX/HTTP//getUserInfo?id=XXX"

  7. headers = {"token": get_token()}

  8. response = requests.post(url=url, headers=headers)

  9. print(response.text)

  10. print(response.status_code)

  11. if __name__ == "__main__":

  12. testingedu_info()

运行结果:

图片

6.编写退出接口脚本

testingedu_logout.py

  1. #!/usr/bin/env python

  2. # -*- coding:utf-8 -*-

  3. import requests

  4. from common.get_token import get_token

  5. def testingedu_logout():

  6. url = "http://www.XXX.com.cn/XXX/HTTP//logout"

  7. headers = {"token": get_token()}

  8. response = requests.post(url=url, headers=headers)

  9. print(response.text)

  10. print(response.status_code)

  11. if __name__ == "__main__":

  12. testingedu_logout()

运行结果:

图片

以上为个人经验,希望能给大家一个参考。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值