北方民族大学Python实训第二课-Pytest

pytest框架

参数化

@pytest.mark.parametrize('name', ['python', 'java', 'java编程语言', '操作系统', '计算机原理-编译原理'])
def test_add_course_name(name):
    teacher = Teacher('teacher1', 'teacher1@beifangminzudaxue.com')
    course = Course(name=('%s' % name))
    r = teacher.add_course(course)
    assert r == True
    assert name in [course.name for course in teacher.get_courses()]

测试前置

  • class setup_class setup teardown teardown_class 支持继承
  • fixture scope yield 更灵活 缺点是没法继承

练习1

对任何一个用例实现参数化

  • 单参数
  • 多参数 expect
  • 参数组合

测试报告生成 Allure2

https://docs.qameta.io/allure/#_pytest

安装

第一步 安装allure命令
https://docs.qameta.io/allure/#_installing_a_commandline

下载地址: https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.22.1/allure-commandline-2.22.1.zip

第二步 解压后把其中的bin路径放到系统的PATH变量里,并重启PyCharm

第三步 安装pytest的扩展

pip install allure-pytest

运行

image

image

pytest.ini

[pytest]
pythonpath = src
pytest --alluredir=allure-results
allure serve allure-results/
allure generate allure-results/ -o allure-report -c

练习2

生成自己测试用例的allure报告

  • 参数化用例
  • 测试装置
  • 生成html的报告

生成web网站

请设计一个课程管理系统,
学校可以管理课程。
课程包含课程名字与ppt。
老师可以添加课程到学校。
管理员可以添加课程与删除课程。

后端代码使用python开发,课程数据存储可以使用变量的方式。
前端代码使用bootstrap,前端界面界面支持对课程的新增、展示、删除。使用后端的模板技术实现。

不要提供注释。

练习3

  • 使用类的方式实现测试装置 setup setup_class teardown teardown_class

生成测试报告

演练代码

第一课链接