版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块6使用pytest框架实现单元测试软件测试任务驱动教程名校名师精品系列教材人民邮电出版社目录导航6.1pytest概述6.2pytest单元测试的实现6.3Allure简介测试实战6.1.1pytest测试框架的特点插件机制灵活,支持丰富的插件灵活的测试执行强大的断言语句能够支持简单的单元测试和复杂的功能测试,还可以实现Selenium/Appium等自动化测试、接口自动化测试(pytest+requests)自动发现测试模块和函数简单、易用的语法支持参数化,可以细粒度地控制测试用6.1.2使用pytest的环境准备pytest是Python2自带的自动化测试框架,Python3中将pytest框架独立出来,使用之前需要先通过pip命令对pytest进行下载与安装,在命令行中运行以下命令即可开始下载与安装。pipinstallpytest检查安装是否成功以及安装的版本,命令如下:pytest--version执行上述命令,如果能够输出版本信息,就说明安装成功了。1.下载与安装pytest6.1.2使用pytest的环境准备使用以下命令下载与安装pytest-html,pytest-html用于生成HTML测试报告,是Python自带的模块。pipinstallpytest-html使用以下命令下载与安装所需的插件。pipinstall插件名2.下载与安装pytest-html3.下载与安装插件6.1.3pytest单元测试的命名规则与默认测试用例的识别规则1.pytest单元测试的命名规则pytest单元测试的命名规则比unittest框架更加严谨,pytest单元测试默认的命名规则如下。测试所用的模块文件名必须以test_开头或者以_test结尾。测试类名必须以Test开头。测试方法名必须以test开头。0102036.1.3pytest单元测试的命名规则与默认测试用例的识别规则1.pytest单元测试的命名规则【示例】pytest单元测试程序中类与方法的命名importpytestclassTest_Demo: deftest_01(self): print("这是测试1") deftest_02(self): print("这是测试2") if__name__=='__main__': pytest.main(["./pytestTestDemo01.py::Test_Demo"])运行结果6.1.3pytest单元测试的命名规则与默认测试用例的识别规则2.默认测试用例的识别规则所有文件名以test_开头或者以_test开头的文件都会被识别为用例文件。A识别用例文件测试类中每个以test开头的方法都会被识别为测试用例,此外,测试文件中每个以test开头的函数也会被识别为测试用例。C识别测试用例测试文件中每个以Test开头的类型都会被识别为测试用例类。B识别用例类6.1.4pytest单元测试的组成元素1.测试文件夹和测试文件.├─README.md├─setup.py└─tests└─test_main.pypytest允许编写测试函数,与测试文件类似,函数名必须带有test_前缀。使用test_前缀可确保pytest收集并执行测试。deftest_main(): assert"123"=="123"2.测试函数6.1.4pytest单元测试的组成元素3.测试类和测试方法在测试类中,可以使用帮助器方法来设置和结束测试执行,pytest将自动执行这些方法(如果已定义)。若要使用这些方法,需清楚以下事项。4.帮助器方法pytest中使用的类不需要继承,测试类遵循一些简单的命名规则,即前缀为Test,测试方法的前缀为test_。与函数一样,仍然可以使用assert语句编写断言。setup()方法在类中的每个测试之前执行一次。teardown()方法在类中的每个测试之后执行一次。setup_class()方法在类中的所有测试之前执行一次。teardown_class()方法在类中的所有测试之后执行一次。目录导航6.1pytest概述6.2pytest单元测试的实现6.3Allure简介测试实战6.2.1编写pytest的测试用例1.以方法的形式编写测试用例用例方法名以test开头即可。deftest_demo(): assert100==100【示例】以方法的形式编写测试用例运行结果6.2.1编写pytest的测试用例2.以类的形式编写测试用例测试类命名以Test开头。classTestDemo:deftest_demo1(self): assert123==123deftest_demo2(self): assert23==25【示例】以类的形式编写测试用例运行结果6.2.2执行pytest测试1.执行pytest测试时的常用参数classTestDemo:deftest_demo1(self): print('测试用例执行') assert123==123【示例】执行pytest命令时添加必要的参数运行结果参数“-v”:表示显示测试的详细参数信息。参数“-s”:表示显示测试执行的输出信息。参数“-x”:表示出现一条测试用例失败就退出测试。执行pytest.main()方法时的参数传递方式。6.2.2执行pytest测试2.在命令提示符窗口中以命令方式执行pytest测试用例(1)直接执行pytest命令。pytest命令pytest可以指定执行的测试文件夹路径,例如,对于文件夹testcase来说,指定执行测试文件夹为testcase的命令如下:pytesttestcase例如,对于test_main.py示例测试文件来说,在命令行中,在存储该文件的同一路径下,可以运行pytest可执行文件,命令如下:(2)指定执行的测试文件夹。6.2.2执行pytest测试2.在命令提示符窗口中以命令方式执行pytest测试用例(3)指定执行的测试文件。pytest-vstestcase/test_demo1.py例如,对于文件夹testcase下文件test_demo1.py中的测试类TestClass来说,指定执行测试文件夹testcase下的文件test_demo1.py中的测试类TestClass的命令如下:pytesttestcase/test_demo1.py::TestClasspytest测试文件名::测试类名命令pytest可以指定执行的测试文件路径,例如,对于文件夹testcase下的文件test_demo1.py来说,指定执行测试文件夹testcase下的文件test_demo1.py的命令如下:(4)指定执行的测试类。6.2.2执行pytest测试2.在命令提示符窗口中以命令方式执行pytest测试用例(5)指定执行的测试用例。pytest测试文件名::测试类名::测试方法名例如,对于文件夹testcase下文件test_demo1.py中测试类TestClass中的测试方法test_method来说,指定执行测试文件夹testcase下的文件test_demo1.py中的测试类TestClass中的测试方法test_method的命令如下:命令pytest可以指定执行的测试文件中测试类的测试方法。语法格式如下:pytesttestcase/test_demo1.py::TestClass::test_method6.2.2执行pytest测试3.在Python程序代码中通过pytest.main()方法执行测试运行指定文件夹下所有的测试用例直接执行pytest.main()方法。运行指定文件中所有以test开头的测试类和测试用例运行指定文件中指定的测试类运行指定文件中指定类的指定测试用例5种方法pytest.main()pytest.main("路径")pytest.main("路径/文件名.py")pytest.main(["测试文件名::测试类"])pytest.main(["测试文件名::测试类名::测试方法名"])6.2.2执行pytest测试4.通过读取pytest.ini配置文件运行测试用例pytest.ini是pytest单元测试框架中的核心配置文件,该文件用于改变pytest的默认行为,通常存放在项目的根文件夹下。该文件需要使用ANSI编码,可以使用Notepad++来修改编码格式。不管是以主函数main()模式还是以命令行模式运行测试用例,都会读取这个配置文件。配置示例如下:[pytest]addopts=-vs #命令行参数,用空格分隔testpaths=./testcase #测试用例的路径,例如./testcase/test_demo2.pypython_files=test_*.py #配置测试搜索的模块文件名的规则python_classes=Test* #配置测试搜索的类名的规则python_functions=test #配置测试搜索的方法名的规则6.2.2执行pytest测试5.分析pytest测试的输出结果pytest测试程序运行完毕,在输出结果窗格中会以.、F、E表示测试用例运行情况。.:表示用例测试通过。F:表示用例测试失败(Failure)。E:表示用例中存在异常(Error)。0102036.2.3生成HTML测试报告语法格式如下:pytest.main("--html=路径/文件名.html"])1.直接执行pytest.main()方法生成HTML测试报告如果省略路径,则表示默认为当前文件夹。例如:pytest.main(["--html=./report0601.html"])语法格式如下:pytest.main(["–html=./report.html","文件名.py"])2.运行指定文件中所有以test开头的测试用例,并生成HTML测试报告6.2.3生成HTML测试报告importpytestclassTest(): deftest1(self): print("这是测试1") deftest1(self): print("这是测试2")if__name__=='__main__': pytest.main(["--html=./report05.html","pytestTestDemo05.py"])【示例】运行指定文件中所有以test开头的测试用例,并生成HTML测试报告在项目pytestTestDemo中创建Python文件pytestTestDemo05.py,并在该文件中输入以下代码:6.2.3生成HTML测试报告运行指定文件中指定类中的指定用例时,并生成测试报告(使用双冒号分隔)。语法格式如下:pytest.main(["–html=./report06.html","文件名.py::类名::用例名"])3.运行指定文件中指定类中的指定用例,并生成HTML测试报告importpytestclassTest(): deftest1(self): print("这是测试1") deftest2(self): print("这是测试2")if__name__=='__main__': pytest.main(["--html=./report06.html","pytestTestDemo06.py::Test::test1"])【示例】运行指定文件中指定类中的指定用例,并生成HTML测试报告在项目pytestTestDemo中创建Python文件pytestTestDemo06.py,并在该文件中输入以下代码:6.2.4测试用例的特殊处理方法1.跳过标记不执行的测试用例根据特定的条件,不执行标记的测试用例。语法格式如下:skipif(condition,reason=None)condition:表示跳过的条件,为必传参数。reason:表示标记原因,为必传参数。使用方法:@pytest.mark.skip()@pytest.mark.skipif(condition,reason="xxx")#condition表示的条件为真时跳过该测试用例6.2.4测试用例的特殊处理方法2.标记为预期失败的用例标记测试函数为预期失败函数。语法格式如下:xfail(condition=None,reason=None,raises=None,run=True,strict=False)condition:表示预期失败的条件,为必传参数。reason:表示失败的原因,为必传参数。使用方法:@pytest.mark.xfail(condition,reason="xx") #condition表示的条件为真则标记为预期失败6.2.4测试用例的特殊处理方法2.标记为预期失败的用例语法格式如下:parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)argnames:表示参数名。argvalues:表示参数值,类型必须为list,当参数数量为1个时的格式为[value],当参数数量多于1个时的格式为[(param_value11,param_value12),(param_value21,param_value22)]使用方法:@pytest.mark.parametrize(argnames,argvalues) #参数名,参数值@pytest.mark.parametrize("a",[3,6]) #单个参数@pytest.mark.parametrize("a,b",[(1,2),(0,3)]) #多个参数6.2.4测试用例的特殊处理方法4.标记的用例执行多次首先使用以下命令下载与安装pytest-repeat。pipinstallpytest-repeat在测试方法上使用该代码,表示执行当前用例n次,然后往下执行其他用例。pytest_repeat的使用方法如下:@pytest.mark.repeat(n)5.调整用例的执行顺序使用以下命令下载与安装pytest-ordering。pipinstallpytest-ordering在测试方法上可以添加以下装饰器。@pytest.mark.run(order=1) #第1个执行@pytest.mark.run(order=2) #第2个执行@pytest.mark.last #最后一个执行6.2.5使用fixture实现测试用例的前置条件1.fixture的作用支持经典的xUnitfixture。使用fixture实现测试用例的前置条件。在测试前实现初始化设置,例如准备测试数据、连接数据库、打开浏览器等操作都可以使用fixture实现。fixture可以实现unittest框架不能实现的功能,例如unittest框架中的测试用例和测试用例之间是无法传递参数和数据的,但是fixture却可以解决这个问题。6.2.5使用fixture实现测试用例的前置条件2.fixture的定义通过@pytest.fixture()装饰器装饰一个函数,那么这个函数就是一个fixture。fixture的语法格式如下:@pytest.fixture()(scope="function",params=None,autouse=False,ids=None,name=None)参数scope:表示fixture的作用范围。参数params:为list类型,提供参数数据,供调用标记方法的函数使用。添加该装饰器,表示测试调用时优先运行预处理或者重复操作。参数autouse:表示是否自动运行,默认为False,表示不自动运行,设置为True时则会自动运行。若不为True则需要调用才会优先运行。6.2.5使用fixture实现测试用例的前置条件3.fixture的调用(1)将fixture的名称作为用例的参数。importpytest@pytest.fixture()deffixtureFunc(): return'fixtureFunc'deftest_fixture(fixtureFunc): print('已调用了{}'.format(fixtureFunc))if__name__=='__main__': pytest.main(['-v','test_fixtureDemo07.py'])【示例】将fixture的名称直接作为测试用例的参数在项目pytestTestDemo中创建Python文件pytestTestDemo06.py,并在该文件中输入以下代码:6.2.5使用fixture实现测试用例的前置条件3.fixture的调用(2)使用@pytest.mark.usefixtures('fixture')装饰器。@pytest.fixture(autouse=True)deffixtureFunc(): print('\nfixture->fixtureFunc')(3)使用autouse参数。指定fixture的参数autouse=True,这样每个测试用例在其作用范围内就会自动调用对应的fixture。示例代码如下:每个定义的函数或者类前使用@pytest.mark.usefixtures('fixture')装饰器进行装饰。6.2.5使用fixture实现测试用例的前置条件4.fixture作用范围fixture默认的作用范围是function级别的,所以测试函数只要调用了fixture,在测试函数执行前都会先指定fixture。fixture的参数scope表示被标记方法的作用范围。参数scope的取值如下。function:function是fixture作用范围的默认值,表示作用于每个测试方法。每个测试用例执行前都会执行一次function级别的fixture。class:表示作用于整个类,每个类执行前都会执行一次class级别的fixture。module:表示作用于整个模块,模块里所有的用例执行前都会执行一次module级别的fixture。session:表示作用于整个Session,每个Session只运行一次,通常Session级别的fixture会结合conftest.py文件使用。6.2.5使用fixture实现测试用例的前置条件5.使用yield关键字在fixture方法中实现teardown类似功能【示例】使用yield关键字在fixture方法中实现类似teardown的功能在项目pytestTestDemo中创建Python文件pytestTestDemo08.py,并在该文件中输入以下代码:6.2.6文件pytest.ini中自定义标记首先在项目根文件夹下创建文件pytest.ini,该文件是pytest的配置文件;然后在文件pytest.ini的markers中写入自定义的标记,“:”前面是标记名,后面是标记的说明,可以是空字符串。示例代码如下:[pytest]markers= Login:'markstestsaslogin' logout:'markstestsaslogout' success:'markstestsassuccess' failed:'markstestsasfailed‘ addopts=--strict6.2.7关于文件conftest.py文件conftest.py可以单独管理一些预置的操作场景,在执行用例的时候就会预置执行。文件conftest.py与运行的测试用例在同一个文件夹或包时,不用导入文件conftest.py,pytest就会自动查找并执行该文件。文件conftest.py有以下特点。文件conftest.py的文件名是固定的,不可以做任何修改。如果其他的Python文件和文件conftest.py位于同一个文件夹下,那么文件conftest.py将作用于整个文件夹。文件conftest.py所在文件夹中必须存在文件__init__.py。文件conftest.py不能被其他文件导入。所有相同文件夹中的测试文件运行前都会自动执行文件conftest.py。6.2.7关于文件conftest.py【示例】文件conftest.py的定义与使用在项目pytestTestDemo中创建名为“conftestTest”的包,在该包中分别创建名为“conftest.py”
“test_demo01.py”和“test_demo02.py”的3个Python文件.打开文件conftest.py并编写代码。运行结果6.2.7关于文件conftest.py【示例】unittest、pytest两种常用Selenium测试框架的对比目前比较流行的两种单元测试框架分别是unittest和pytest,下面以登录“搜狐闪电邮箱”为例对比unittest、pytest两种Selenium测试框架的区别。6.2.7关于文件conftest.py1.创建项目UnittestpytestDemoProject在PyCharm集成开发环境中,创建命名为“UnittestpytestDemoProject”的Python项目。2.不使用测试框架实现邮箱登录在项目中创建文件test_login01.py,并在该文件中编写不使用测试框架实现邮箱登录的代码。6.2.7关于文件conftest.py3.使用unittest测试框架实现邮箱登录在项目中创建文件test_login02.py,并在该文件中编写使用unittest测试框架实现邮箱登录的代码。6.2.7关于文件conftest.py4.使用pytest测试框架实现邮箱登录在项目中创建文件test_login03.py,并在该文件中编写使用pytest测试框架实现邮箱登录的代码。6.2.7关于文件conftest.py5.比较unittest、pytest两种常用Selenium测试框架的区别(1)使用unittest测试框架对测试用例进行重构。运行调用形式为unittest.main()。在tearDownClass()方法中关闭浏览器。将assert断言改为unittest断言,即self.assertEqual(self.driver.title,expected)的形式。修改__init__方法为setUpClass,并在该方法中进行初始化操作。更改继承类为unittest.TestCase,即classTestUserLogin(unittest.TestCase)的形式。6.2.7关于文件conftest.py5.比较unittest、pytest两种常用Selenium测试框架的区别(2)使用pytest测试框架对测试用例进行重构。修改__init__方法为setup_class,并在该方法中进行初始化操作。更改继承类为object,即classTestUserLogin(object)的形式。使用Python语言自带的断言assert,即assertself.driver.
title==expected的形式。在teardown_class()方法中关闭浏览器。运行调用形式为pytest.main(["test_login03.py::TestUserLogin"])。内容如下目录导航6.1pytest概述6.3Allure简介6.2pytest单元测试的实现测试实战6.3.1在Windows操作系统中安装Allure与allure-pytest插件1.在Windows操作系统中安装AllureAllure是一个命令行工具,可以在下载相应安装包后进行环境变量配置。①先到GitHub网站下载Allure安装包,然后解压Allure安装包,解压完成后,将文件夹名修改为“allure”。②进入allure文件夹下的子文件夹bin中,双击运行批处理文件allure.bat。③将bin路径“D:\allure\bin”添加到Path环境变量中。④安装完成后在命令提示符窗口中运行命令allure--version,如果可以显示版本号,则代表安装成功。安装流程6.3.1在Windows操作系统中安装Allure与allure-pytest插件2.安装allure-pytest插件allure-pytest插件主要用来生成测试结果数据,为后续Allure生成测试报告提供数据支撑。Allure安装完成后,在项目中使用以下命令安装allure-pytest:pip3installallure-pytest6.3.2使用Allure生成测试报告1.将生成的测试结果数据存放到指定文件夹下命令的语法格式如下:pytest[filename.py]--alluredir=/tmp/resultdir命令的语法格式如下:allureserve/tmp/resultdir2.使用Allure插件将测试结果数据生成测试报告alluredir后面的路径即为测试数据的生成路径。6.3.2使用Allure生成测试报告【示例】创建test_allure_demo01.py文件将测试结果数据生成测试报告在PyCharm集成开发环境中,创建名为“AllureTestDemo”的Python项目。创建项目AllureTestDemo01OPTION创建文件test_allure_demo01.py02OPTION在项目AllureTestDemo根文件夹下创建文件test_allure_demo01.py,该文件的代码如下:6.3.2使用Allure生成测试报告【示例】创建test_allure_demo01.py文件将测试结果数据生成测试报告在Windows的命令提示符窗口中将项目AllureTestDemo根文件夹设置为当前文件夹,然后执行以下命令:pytesttest_allure_demo01.py--alluredir=./result/demo01命令执行完成后,在项目AllureTestDemo根文件夹下的文件夹result中会生成子文件夹demo01,demo01子文件夹中包含4个JSON文件,即测试结果数据。然后再执行如下命令,根据测试结果数据生成测试报告,并且自动打开默认浏览器显示测试报告。生成测试报告03OPTION6.3.3查看Allure生成的测试报告方式1:测试完成后在线查看实际报告,会直接打开默认浏览器展示当前报告。#注意这里的serve书写方式allureserve./result/方式2:从结果生成报告(这时需要启动Tomcat的服务),需要两个步骤:生成报告、打开报告。(1)生成报告。#注意:覆盖路径加--cleanalluregenerate./result/-o./report/--clean6.3.3查看Allure生成的测试报告(2)打开报告。#方式1:test_allure_demo.py是模块名,./result是报告地址pytesttest_allure_demo.py-vs-q--alluredir=./resultallureserve./result/#方式2pytesttest_allure_demo.py-vs-q--alluredir=./resultalluregenerate./result/-o./report/--cleanallureopen-h-p8883./report/#./report是报告所在的路径allureopen-h-p8883./report/生成与查看Allure测试报告的完整示例代码如下:6.3.4Allure常用的特性1.feature和storyfeature相当于一个大的功能模块,其将case分类到某个feature中,并在报告中的behavior位置显示,相当于testsuite。story相当于对应这个功能或模块下的不同场景,即分支功能,属于feature之下的结构,在报告中的feature位置显示,相当于testcase。在项目AllureTestDemo根文件夹下创建文件test_allure_demo02.py,并在该文件中编写代码。【示例6-12】创建test_allure_demo02.py文件应用feature和story创建文件test_allure_demo02.py01OPTION6.3.4Allure常用的特性执行测试结果数据生成命令:生成测试报告02OPTIONpytesttest_allure_demo02.py--alluredir=./result/demo02执行测试报告生成命令并打开测试报告:allureserve./result/demo026.3.4Allure常用的特性2.step测试过程中的每个步骤,一般放在具体的逻辑方法中,也可以放在关键步骤中在报告中显示。在App、Web自动化测试中,建议每切换一个页面就将其作为一个step。step的使用方法如下。@allure.step():只能以装饰器的形式放在类或方法上面。withallure.step():可以放在测试用例方法里面,但是测试步骤的代码需要被该语句包含。3.issue和testcaseissue和testcase的主要作用是关联测试用例。6.3.4Allure常用的特性【示例】创建test_allure_link03.py并应用issue和testcase在项目AllureTestDemo根文件夹下创建文件test_allure_link03.py,该文件的代码如下:importallure@allure.link("")deftest_with_link():print("这是一条添加了超链接的测试")pass在命令提示符窗口中通过以下命令执行测试用例并打开测试报告。创建文件test_allure_link03.py01OPTIONpytesttest_allure_link03.py--alluredir=./result/demo03allureserve./result/demo036.3.4Allure常用的特性【示例】创建test_allure_link03.py并应用issue和testcase将文件test_allure_link03.py的代码修改如下:@allure.link("",name="这是超链接名字")deftest_with_link():print("这是一条添加了超链接的测试")pass指定超链接名字02OPTION@allure.link("",name="这是超链接名字")deftest_with_link():print("这是一条添加了超链接的测试")pass链接至用例库对应的测试用例03OPTION6.3.4Allure常用的特性【示例】创建test_allure_link03.py并应用issue和testcase#定义用例地址TEST_CASE_LINK="/case"@allure.testcase(TEST_CASE_LINK,"登录测试用例")deftest_with_testcase_link():print("这是一条登录测试用例,链接到测试用例管理系统中")pass在文件test_allure_link03.py中增加如下关联Bug的代码。关联Bug04OPTION#第一个参数为Bug的编号@allure.issue('140','这是一个issue')deftest_with_issue_link():pass6.3.4Allure常用的特性4.severityseverity用来对测试用例的级别进行标准化。测试用例的级别如下。severity的使用方法是在方法、函数和类前添加注解,例如:@allure.severity(allure.severity_level:TRIVIAL)severity的语法格式如下:pytest-v-sfilename.py--allure-severitiesnormal,criticalTRIVIAL:不重要。MINOR:不太重要。NORMAL:正常问题。CRITICAL:严重。BLOCKER:阻塞。6.3.4Allure常用的特性5.attachattach方法用于自动化测试时在测试报告中添加HTML文档或图片。(1)在测试报告中添加HTML文档。attach方法在测试报告中添加HTML文档的语法格式如下:allure.attach(body,name,attachment_type,extension)allure.attach('首页')allure.attachment_type.HTML(2)在测试报告中添加图片。attach方法在测试报告中添加HTML文档的语法格式如下:allure.attach.file(source,name,attachment_type,extension):allure.attach.file("./result/b.png",attachment_type=allure.attachment_type.PNG)6.3.4Allure常用的特性5.attachattach方法生成纯文件的示例代码如下:importalluredeftest_attach_text(): allure.attach("这是一段文本",attachment_type=allure.attachment_type.TEXT)importalluredeftest_attach_html():
allure.attach("<body>这是一个HTML文档</body>","HTML测试", attachment_type=allure.attachment_type.HTML)attach方法生成HTML文档的示例代码如下:attach方法生成IMG格式的图片的示例代码如下:importalluredeftest_attach_img(): allure.attach.file("./img/01.jpg",name="这是一张图片", attachment_type=allure.attachment_type.JPG)6.3.4Allure常用的特性【示例】创建文件test_allure_case04.py将测试结果生成测试报告在PyCharm集成开发环境中,创建名为“AllureCaseProject”的Python项目。在项目AllureCaseProject根文件夹下创建文件test_allure_case04.py,该文件的代码如下:创建文件test_allure_case04.py02OPTION创建项目AllureCaseProject01OPTION6.3.4Allure常用的特性【示例】创建文件test_allure_case04.py将测试结果生成测试报告创建文件test_case01.py04OPTION在项目AllureCaseProject根文件夹下创建文件conftest.py03OPTION创建文件test_case02.py06OPTION在test_case01包中创建文件conftest.py05OPTION6.3.4Allure常用的特性【示例】创建文件test_allure_case04.py将测试结果生成测试报告创建文件test_case03.py08OPTION在包test_case02中创建文件conftest.py07OPTION生成测试报告09OPTION在Windows的命令提示符窗口中将项目AllureCaseProject根文件夹设置为当前文件夹,然后执行以下命令。pytest--alluredir=./result/case016.3.4Allure常用的特性【示例】创建文件test_allure_case04.py将测试结果生成测试报告查看Suites(function级别的测试用例)10OPTION查看测试用例详情11OPTION6.3.4Allure常用的特性【示例】结合Allure使用pytest框架进行测试,并生成测试报告准备测试数据。在子文件夹dataDemo中创建CSV文件data1.csv,并在该文件中输入测试数据。在子文件夹demo中创建Python文件cale.py,并在该文件中创建类Cale,编写方法实现加、减、乘、除四则运算。在子文件夹readDemo中创建Python文件readCsv.py,并在该文件中创建类与方法,实现从指定的CSV文件data1.csv中获取数据功能。在项目根文件夹中创建Python文件test_demo01.py,并在该文件中创建类Test和测试用例test01。运行文件test_demo01.py。目录导航6.1pytest概述6.3Allure简介6.2pytest单元测试的实现测试实战【任务6-1】基于Selenium+pytest+Allure测试百度搜索功能基于Selenium+pytest编写测试程序,对百度搜索功能进行测试,应用Allure生成测试报告。【任务要求】【任务实施】创建文件test_allure_task01.py01OPTION生成测试报告02OPTION【任务6-2】基于Python3+Selenium+pytest测试网上商城系统OnlineShop的用户注册与登录功能基于Python3+Selenium+pytest编写测试程序,对网上商城系统OnlineShop的用户注册、普通用户登录、管理员登录等功能进行测试。【任务要求】【任务实施】创建项目pytestTestTask0201OPTION在PyCharm集成开发环境中,创建名为“pytestTestTask02”的Python项目,并在项目根文件夹下分别创建testcases包和utils包。创建文件showapiRequest.py02OPTION【任务6-2】基于Python3+Selenium+pytest测试网上商城系统OnlineShop的用户注册与登录功能创建文件util.py03OPTION创建文件test_user_login.py04OPTION【任务6-2】基于Python3+Selenium+pytest测试网上商城系统OnlineShop的用户注册与登录功能创建文件test_admin_login.py05OPTION创建文件test_user_register.py06OPTION【任务6-2】基于Python3+Selenium+pytest测试网上商城系统OnlineShop的用户注册与登录功能启动OnlineShop网上商城系统07OPTION运行程序loginTest.py测试普通用户登录08OPTION运行程序adminLoginTest.py测试管理员用户登录09OPTION运行程序registerTest.py测试用户注册10OPTION在PyCharm集成开发环境中,运行程序loginTest.py,打开普通用户的“登录”页面,并自动输入普通用户登录信息所示。等一段时间后,自动单击“提交”按钮,进入系统主页面。在PyCharm集成开发环境中,运行程序adminLoginTest.py,打开管理员用户的“登录”页面,并自动输入管理员用户登录信息。等一段时间后,自动单击“登录”按钮,进入“网上商城后台管理系统”页面。在PyCharm集成开发环境中,运行程序registerTest.py,打开系统的“注册”页面,并自动输入系统用户注册信息。等一段时间后,自动单击“提交”按钮,提交成功后进入系统的“登录”页面。在PyCharm集成开发环境中,成功启动OnlineShop网上商城系统。【任务6-3】使用pytest自动化测试框架与自定义测试框架相结合的方式测试百度搜索功能使用pytest自动化测试框架与自定义测试框架相结合的方式对百度搜索功能进行测试,测试地址为百度首页。在百度首页搜索指定内容,对应的定位元素为百度首页中的页面元素。【任务要求】【任务实施】创建项目pytestTestTask0301OPTION在项目中创建包或文件02OPTION【任务6-3】使用pytest自动化测试框架与自定义测试框架相结合的方式测试百度搜索功能将处理时间的多个方法封装为一个模块03OPTION添加配置文件04OPTION(1)在文件conf.py中编写代码。(2)在文件config.ini中编写代码。[HOST]HOST=【任务6-3】使用pytest自动化测试框架与自定义测试框架相结合的方式测试百度搜索功能读取配置文件05OPTION记录操作日志06OPTION【任务6-3】使用pytest自动化测试框架与自定义测试框架相结合的方式测试百度搜索功能管理页面元素07OPTION(1)在page_element文件夹下创建文件search.yaml。(2)在common包中创建文件readelement.py。搜索框:"id==kw"候选:"css==.bdsug-overflow"搜索候选:"css==#formdivli"搜索按钮:"id
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024统编版八年级历史上册期末复习:选择题 专项练习题汇编(含答案解析)
- 2025-2026学年八年级道德与法治期末模拟卷(考试版)【河北专用测试范围:八年级上册全册】
- 2024统编版七年级语文下册 第五单元(18~21课)教案
- 企业内部保密工作手册推广指南
- 2-F-T-Amidite-DMTr-2-F-dT-3-CE-phosphoramidite-生命科学试剂-MCE
- 甘肃警察职业学院《物流管理概论》2024 - 2025 学年第一学期期末试卷
- 11.1 化学与人体健康题型专练-2025-2026学年九年级化学人教版(2024)下册 教学设计
- 2025 印度新能源汽车产业的发展前景课件
- 2025 六年级地理下册南亚的位置和范围课件
- 2026六年级语文人教版上册语文园地一
- 米粉切割机-毕业设计
- 4.1.1首次供货企业和首次采购品种的审核管理制度
- 2023年广西壮族自治区中考语文试题(含答案解析)
- 一本正经的Q版漫画技法书
- 台球俱乐部商业计划书
- GB/T 10061-2008筛板筛孔的标记方法
- 九段秘书与九段HR11
- 电子商务的产生与发展
- 什么是血液透析课件
- 【农业养殖技术】稻田罗氏沼虾的养殖技术
- 《自然环境对民居、服饰和饮食的影响》课件
评论
0/150
提交评论