Pytest框架

自动化测试使用的那些库

  1. selenium库 web自动化测试工具

  2. priest框架,运行用例

  3. random随机,概率

  4. xlrd --获取exell表数据

  5. pymysql调用数据库

  6. pytest-html --生成html文件

  7. yagmanil --发送邮件

  8. time-时间

  9. Select包–下拉框

  10. Keys 模拟键盘操作

  11. Webdriverwait智能等待

  12. Action Chains模拟鼠标操作

pytest框架如何使用

  1. 安装 pytest框架

pip install pytest、在 pycham里安装 pytest、源码安装

  1. 导入 pytest: import pytest
  2. 编写主函数,后续代码,后面运行: if_name_=='main’;
  3. 执行文件:pytest.main(["要运行的文件的相对路径"]) 例如([“…/test_case/test_01.py”])

pytest框架如何去生成测试报告

  1. 要安装 pytest-html

pip install pytest-html、在 pycharm里安装 pytest-html、或者源码安装

  1. 在运行用例模块中执行用例时添加html路径: pytest.main(["要运行的文件的路径","--html=. /report/report.html"])

bytes如何去运行多个文件或者整个目录

  1. 执行多个文件

pytest.main(["../test_case/test_01","../test_case/test_login"])

  1. 执行整个目录

pytest.main(["../test_case/"]) 列表里是目录路径

pytest框架如何去运行上次失败的测试用例

  1. pytest --lf运行用例的路径 — 只运行上次失败的用例
  2. pytest --ff运行用例的路径 — 运行上次所有的用例,优先运行上次失败的用例

(如果没有写路径,则执行当前目录下所有的用例)

运行完成后,如何去自动发送邮件

#用例执行,无人值守的状态,如何才能知道已经运行完成,发送测试报告到邮箱里面查看运行完成

安装 yagman

pip install yagmail、在 pycharm中安装 yagmail

导入 yagmail: import yagmail

定义发送者邮箱服务,里面包括邮箱地址,授权码,smtp.126.com

yag = yagmail.SMTP("126邮箱地址","授权码","smtp.126.com")

自动发送邮件

yag.send(["接收邮件的邮箱地址","多个邮箱用列表包起来"],"邮件主题","邮件正文内容","附件的地址../report/report.html")

fixture装饰器的作用与默认值

  1. 装饰器:
@pytest.fixture()
def open_l(): #不再用test开头,
ea = element_action() #实例化对象
ea.open_url() #打开浏览器 driver,被其他用例所调用
yield ea 1
# 1. 装饰器使用的返回值,类似于 return方法
# 2. 前置与后置处理分开
ea.close_browser() #每次运行,关闭浏览器,闭环

设置了装饰器之后,可以被其他用例调用,又使每个用例都有打开网页和默认关闭网页的作用

yield的作用是什么

  1. 装饰器使用的返回值,类似于 return方法
  2. 使前置与后置处理分开

pytest运行用例,用例命名规则有哪些

  1. 文件名以test_*.py文件和 *_test.py命名 * 代表任意任何内容
  2. def函数要以test_开头
  3. class类要以test_开头.
  4. 以test_开头的方法

allure报告生成

1,先安装一个allure包用 pip install allure-pytest

2,运行脚本-s,-d生成报告的目录,一般是一些json文件

3,下载allure生成工具,配置环境变量

4,运行命令: allure generate ./allurereport/-o ./reporthtml/--clean

生成html的 allure报告