python学习

python+selenium(5)测试框架

2022-07-27  本文已影响0人  考拉十口

测试框架有unittest、pytest

pytest

使用pytest,方法名必须要以test开头

一个方法是一个用例,方法中添加断言判断执行结果是否等于预期,断言用assert。如下判断当前页面的url是否等于百度首页的地址:

assert driver.current_url =="https://www.baidu.com/"

缺点:

代码耦合性高,用例难以维护

unittest

python自带的单元测试框架,不用安装直接导入使用,可以进行用例管理,把功能相近的用例写到一个类中,并可以生成测试报告。

import unittest

按住ctrl并点击unittest可以查看怎么使用

unittest中的类需要调用unittest下的TestCase,类中包含的测试用例/方法名称也要以test开头,并且用例的参数项需要包含self,如下,定义了一个名为TestCase的类,该类包含一个名为test_login的用例。

class TestCase(unittest.TestCase):

    # 执行每个用例前先执行setUp

    def setUp(self):

        self.driver = webdriver.Chrome()

    # 每个用例执行完后,执行tearDown

    def tearDown(self):

        self.driver.quit()

    # 一个测试用例

    def test_login(self):

【test fixture】

执行一个测试用例进行的环境搭建和销毁是一个fixture,通过setup和teardown实现。

【testcase】

测试用例,一个完整的测试流程,包括测试前期准备,测试环境搭建-setup(选择浏览器),执行测试代码-runner,销毁记录-teardown(关闭浏览器),可以对某个具体问题进行验证。

【test suit】

测试集,多个用例集合在一起,可以将关联的用例组合成测试套件

suit的使用

# 将TestCase类中包含的测试用例添加到测试集suit中

suit = unittest.TestSuite()

suit.addTest(unittest.makeSuite(TestCase))

【test runner】

运行器,执行测试用例

# unittest的运行方法

if __name__ =='__main__':

    unittest.main()

【test loader】

加载器,将testcase加载到testsuit中

【用例执行顺序】

ASCII码0-9 A-Z a-z

【常用的断言】

assertEqual(a,b):a==b

assertNotEqual(a,b):a!=b

assertTrue(x):Bool(x) is True

assertFalse(x):Bool(x) is False

assertIs(a,b):a is b

assertIsNot(a,b):a is not b

assertIsNone(x):x is None

assertIsNotNone(x):x is not None

assertIn(a,b):a in b

assertNotIn(a,b):a not in b

assertIsInstance(a,b):IsInstance(a,b)

assertNotIsInstance(a,b):NotIsInstance(a,b)

断言的使用

# 以assertEqual举例,下面的断言表示如果当前url等于"https://www.baidu.com/",就通过

self.assertEqual(self.driver.current_url, "https://www.baidu.com/")

【执行结果】

点击红框按钮,可以查看执行测试用例的路径。

测试路径根节点的Test Results显示在右侧运行结果的顶部,下图红框所示。

测试路径每一层分别代表python文件,类名,方法名,如下图

1:执行的python文件名称

2:python文件中被执行的类名

3:python文件中被执行的方法名

p.s.

运行程序的默认方式可以在file>settings>Tools>Python Integrated Tools中进行修改。如果选择pytest出现如下提示,说明没有安装pytest或pytest没有安装成功,在cmd窗口执行pip install pytest,执行完成后重启pycharm,此时再选择pytest就不会再有错误提示,点击【Apply】,再点击【ok】即可。

也可以设置默认运行程序的方式为unittest

上一篇 下一篇

猜你喜欢

热点阅读