当前位置: 首页 > article >正文

python+pytest+request 接口自动化测试

一、环境配置
1.安装python3

brew update

brew install pyenv

然后在 .bash_profile 文件中添加 eval “$(pyenv init -)”

pyenv install 3.5.3 -v

pyenv rehash 安装完成后,更新数据库

pyenv versions 查看目前系统已安装的 Python 版本

pyenv global 3.5.3 切换 Python 版本

python -V,查看 Python 版本

2.安装pytest及其他所需安装包:

pip install -U pytest
pip install -U requests
pip install -U pytest-pythonpath
pip install -U pytest-capturelog
pip install PyYAML
pip install configparser
pip install pyopenssl

二、pytest框架

setup_module(module): #开始测试前执行一次,目前无实际使用

setup_function(function): #每个测试用开始前执行一次,用于检查、准备测试环境

teardown_function(function): #每个测试用例执行完执行一次,用于清除生成的测试数据

teardown_module(module): #每次测试完成执行一次,用于还原测试环境

@pytest.mark.parametrize(‘mycase’, case.list,ids=case.name) #装饰器,用来将list格式的测试用例分开执行

pytest.skip("skip testcase: (%s)" % mycase['Name']) #跳过测试用例
pytest.xfail("previous test failed (%s)" % mycase['Name']) #跳过会失败的测试用例

三、测试报告

python -m pytest -s -q 控制台输出每一步结果

1.allure

安装:

sudo pip install pytest-allure-adaptor
brew tap qatools/formulas
brew install allure-commandline

执行:

python -m pytest -s -q --alluredir ./report #控制台也输出每一步结果
python -m pytest --alluredir ./report #控制台只输出成功/失败和失败报的错误
allure generate report/ -o report/html #生成报告,可直接打卡看

2.pytest-html

安装:

sudo pip install pytest-html

执行:

python -m pytest -s -q --html=./report.html #控制台也输出每一步结果

python -m pytest --html=./report.html #控制台只输出成功/失败和失败报的错误

四、Demo
  1. # coding: utf-8

  2. import pytest

  3. import public

  4. import read_testcase

  5. import record

  6. #获取一个账号token,全局变量

  7. public.getalltoken()

  8. #测试用例实例化

  9. testcase=read_testcase.case()

  10. #所有测试用例开始前执行的文件,只执行一次

  11. def setup_module(module):#每次开始测试执行一次

  12. print ("setup_module")

  13. #所有测试用例结束后执行的文件,只执行一次

  14. def teardown_module(module):#每次测试完成执行一次

  15. print ("teardown_module")

  16. #每个测试用开始执行一次

  17. def setup_function(function):

  18. print ("setup_function")

  19. #每个测试用例执行完执行一次

  20. def teardown_function(function):

  21. print ("teardown_function")

  22. #装饰器 pytest 整合的测试用例生成多个结果

  23. @pytest.mark.parametrize('mycase', testcase.testcase_list,ids=testcase.testcasename)

  24. def test_all(mycase):

  25. testcase=mycase['Testcase_name']+str(mycase['Testcase_ID'])+'.'+str(mycase['ID'])+":"+mycase['Name']

  26. #print(mycase['Name'])

  27. #pytest.skip("skip testcase: (%s)" % mycase['Name'])

  28. #pytest.xfail("previous test skip (%s)" % mycase['Name'])

  29. mycase = public.get_Precondition(mycase)

  30. #执行接口的测试

  31. r=public.request_method(mycase)

  32. try:

  33. print(r.status_code)

  34. print(r.json())

  35. except Exception as e:

  36. print(r.content)

  37. print(e)

  38. #对返回数据进行断言

  39. public.assert_method(r, mycase)

  40. #记录测试用例名称存储log

  41. record.record_testcase_name(testcase)

  42. #记录测试时使用的数据

  43. record.record_testcase_msg(mycase)

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

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

软件测试面试文档

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

 

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


http://www.kler.cn/news/341872.html

相关文章:

  • SpringBoot框架下的服装生产管理解决方案
  • (C语言贪吃蛇)10.贪吃蛇向右自行行走
  • 数字安全新时代:聚焦关键信息基础设施安全保障——The Open Group 2024生态系统架构·可持续发展年度大会盛大来袭
  • Python 工具库每日推荐 【Pandas】
  • 基于SSM的大学生勤工助学管理系统(含源码+sql+视频导入教程+文档+PPT)
  • Ubuntu22.04之mpv播放器高频快捷键(二百七十)
  • 如何在RuoYi-Vue项目中去除`/dev-api`前缀
  • Vue 响应式的本质
  • 12.5 Linux_进程间通信_信号灯
  • 面试--开源框架面试题集合
  • acwing:1576. 再次树遍历
  • dfs 判重Sequence one——hdu 2610
  • 10.4学习
  • 高级java每日一道面试题-2024年10月6日-数据库篇-MVCC是什么? 它的底层原理是什么?
  • SSRF漏洞
  • Java经典面试题-多线程打印
  • js短路求值
  • 网络安全社区和论坛
  • Java入门:10.Java中的包
  • 使用Java调用OpenAI API并解析响应:详细教程