实施自动化测试的途径有很多, 比方说你能够使用特定的工具来搞一搞、你去认真编写那些个叫做测试用例的文件、你使用断言语句来进行验证的操作以及你去记录和报告那些个测试最终得出的结果等等这些情况, 在这些个方法里头, 使用工具和编写测试用例是最为常见的做法, 接下来, 我们要对这两种方法做出一个较为详细的解释说明。一、进行自动化测试这一行为是被实施的。这个框架属于内嵌式结构, 它能够提供一套非常完备的测试工具集合, 从而允许相关人员去进行代码编写以及执行测试任务。1、创建测试用例在中, 测试用例是通过继承那个点号加类的形式来创建的。每个测试方法必须以test开头。import unittestclass TestStringMethods(unittest.TestCase):def test_upper(self):self.assertEqual(foo.upper(), FOO)def test_isupper(self):self.assertTrue(FOO.isupper())self.assertFalse(Foo.isupper())def test_split(self):s hello worldself.assertEqual(s.split(), [hello, world])with self.assertRses(TypeError):s.split(2)if __name__ __main__:unittest.main()2、让测试项目去执行一下。您可以直接执行上述所说的脚本, 该操作会自动识别并启动所有以test这个词组作为起始标记的方法。二、我们在使用这个工具进行自动化测试。这是一个功能比较强大, 同时也比较容易上手使用的一个测试方面的框架, 它既支持那种相对简单的单元测试操作, 同时还可以支持那些相对比较复杂的功能测试任务。1、安装您可以在命令行环境中执行以下这些命令, 从而完成安装的相关操作。pip install pytest2、编写测试用例它并不要求一定要从一个专门的类里面去继承过来。那个测试函数呢, 只需要用test_这两个字符开头就可以了。def test_upper():assert foo.upper() FOOdef test_isupper():assert FOO.isupper()assert not Foo.isupper()def test_split():s hello worldassert s.split() [hello, world]with pytest.raises(TypeError):s.split(2)3、把测试的运行过程给执行下去。您需要在命令行界面中,执行以下这段指令内容:pytest它会自己把那个测试函数给发现出来, 然后就把它们都运行了。三、进行使用, 来做自动化测试的事情。它是一套用于Web应用程序测试的工具, 支持多种浏览器, 并且提供了丰富的API。1、安装在命令行中运行以下命令安装pip install selenium2、设置现在咱们得弄一个东西, 用来跟浏览器打交道。打个比方来说, 你那边还得下载安装包, 然后把它放到系统的路径里面去。3、编写测试用例from selenium import webdriverimport unittestclass GoogleTestCase(unittest.TestCase):def setUp(self):self.browser webdriver.Chrome()self.addCleanup(self.browser.quit)def test_search_in_google(self):self.browser.get(http://www.google.com)self.assertIn(Google, self.browser.title)elem self.browser.find_element_by_name(q)elem.send_keys(Selenium)elem.submit()self.assertTrue(Selenium in self.browser.page_source)if __name__ __main__:unittest.main()4、运行测试你可以选择直接去运行上面那个脚本, 这样做的话就会让浏览器自己启动去跑测试用例。四、结合使用和将二者结合起来使用, 以便能够利用其在Web测试中所具备的强大的功能。from selenium import webdriverimport unittestclass GoogleTestCase(unittest.TestCase):def setUp(self):self.browser webdriver.Chrome()self.addCleanup(self.browser.quit)def test_search_in_google(self):self.browser.get(http://www.google.com)self.assertIn(Google, self.browser.title)elem self.browser.find_element_by_name(q)elem.send_keys(Selenium)elem.submit()self.assertTrue(Selenium in self.browser.page_source)if __name__ __main__:unittest.main()五、通过使用断言语句。断言语句是用来做验证测试结果的, 看看结果是不是符合大家预期的那种情况。在相关框架中, 都有非常丰富的断言方法。1、中的断言方法2、中的断言方法这个断言方法是相当简单的, 你只需要直接使用对应的语句即可。def test_example():x 5y 10assert x y六、对测试的结果进行记录, 并且形成一份报告。测试结果的记录以及最终形成的报告, 对于大家去掌握测试到底执行得怎么样了, 或者说对于咱们能不能把问题给揪出来, 那都是至关重要的环节。1、中的记录和报告它会去自动地把测试执行的那个情况给记录下来, 并且等到测试全部结束了以后, 再把最后的结果输出出来。Ran 3 tests in 0.001sOK如果有失败的测试, 会输出详细的错误信息。2、其中所涉及的那部分数据, 还有相关的各类文件资料。它提供了那些非常丰富的记录和报告的功能, 这种功能允许系统去生成那些详细的报告, 这些详细的报告里面包括了测试结果, 还包括了错误信息, 还涵盖了执行时间等等内容。 test session starts platform linux -- Python 3.8.5, pytest-6.2.4, py-1.10.0, pluggy-0.13.1collected 3 itemstest_example.py ... [100%] 3 passed in 0.02s 七、在操作的过程中, 采用使用Mock对象这一方法。在有些情况里头, 测着写的代码, 它可能还得指望那些外头的资源呐或者是服务呐。为了解决这么个问题, 咱们可以搞出个东西来叫做Mock对象, 用这东西去模拟那些外头的资源或者是那些所谓的服务。1、中的Mock对象这里提供了一个.mock模块, 这个模块的主要任务是为了去创建那些个叫做Mock的对象。from unittest.mock import Mock创建Mock对象mock Mock()设置Mock对象的返回值mock.method.return_value foo调用Mock对象的方法result mock.method()验证返回值assert result foo2、中的Mock对象这里给提供了一个叫做mock的插件, 这个插件是用来创建那些Mock对象的。def test_example(mocker):# 创建Mock对象mock mocker.Mock()# 设置Mock对象的返回值mock.method.return_value foo# 调用Mock对象的方法result mock.method()# 验证返回值assert result foo八、集成测试和持续集成集成测试, 这指的是去验证多个组件或系统之间相互作用的状况是否正常的一个测试。持续集成, 简称是CI, 这是一种软件开发实践, 它意味着开发人员会频繁地把代码集成到主干中去, 并且自动地去构建代码以及测试代码。1、使用进行持续集成其实它就是开源的那种拿来就能用的持续集成的工具, 可以让大家很自动化地把代码给它建起来, 并且还可以顺手去测一测代码到底行不行。2、在进行持续集成操作的时候, 会使用这个办法。是提供了一个这种持续集成的服务, 它可以通过自动化的方式去执行代码的构建动作, 也可以去测试代码。name: CIon:push:branches: [ main ]pull_request:branches: [ main ]jobs:build:runs-on: ubuntu-lateststeps:- name: Checkout codeuses: actions/checkoutv2- name: Set up Pythonuses: actions/setup-pythonv2with:python-version: 3.8- name: Install dependenciesrun: |python -m pip install --upgrade pippip install pytest- name: Run testsrun: |pytest通过走上述的这些个步骤, 能把自动化测试这件事儿给实现出来, 还把它集成到持续性集成的整个流程里头去, 这么做呢, 是能确保咱代码的质量还有它的稳定性是达标的, 而且一旦代码发生了某些变化的时候, 那是可以立刻地去发现并且解决那些相关的问题的。与常见问题相关的问答, FAQs。用户所提出的问题在于应当采取怎样的一种方式来, 去把自动化测试所涉及的那些基本环节全都弄清楚并且依次操作起来。使用进行自动化测试通常包括几个重要步骤。首先, 您需要选择一个适合您项目的测试框架, 如、或nose。接下来, 您需要编写测试用例, 确保覆盖所有重要的功能。测试用例应包含输入数据和预期输出。然后, 您可以运行测试并查看结果, 以确定是否存在任何问题。到最后这一步, 咱们是得拿那个持续集成这个工具出来用一用的, 这样就把测试这块事情给融入到你的那套开发流程里头去了, 然后等代码发生变化的时候, 它会自动地就把那些测试给运行起来。大家在进行自动化测试工作时, 通常会用到哪些类型的库和框架呢?在编程领域当中, 存在多个库可以供人们进行自动化测试工作。其中有不少库是比较常见的, 比如有一些库是专门用于对网站应用程序做测试的, 有一些库则是专门用于处理接口测试的, 还有名叫 Soup 的那种工具是用来做网页数据抓取以及测试的, 另外还有 Robot 这个库主要是用来针对功能测试和验收测试工作的。每一个库都有它自己的不同特点, 如果能把适合的库选对的话, 就能让测试工作开展得更加高效、更加准确。关于如何处理自动化测试中的测试数据, 这个问题应当被提出来加以探讨。有效管理测试数据, 这其实是确保自动化测试能够成功的重中之重。大家可以试着去创建一种被称为数据驱动测试的东西, 因为这种方法允许你从诸如CSV、JSON或者Excel这类的外部文件当中读出数据, 然后再在这些数据的基础上应用到多个不同的测试用例里面去。此外, 用到的那种参数化功能也能够帮你做点事情, 它可以让你在面对各种各样不同的输入条件的时候, 依然去运行原来那个相同的测试, 这样一来, 整个测试的覆盖面就变得更加广泛了。。另外呢还得保持测试数据那种独立性, 确保每一次运行测试的时候都别受到之前测试结果的影响, 这么干呢能够提高测试的可靠性。