一、常用测试框架
Python在测试领域有众多的测试框架可供选择。其中最为火热的是unittest和pytest。
unittest是Python自带的测试框架,其优点是稳定、可靠,使用者多。unittest提供了基本的测试组织结构,包括setUp()、tearDown()、setUpClass()、tearDownClass()、test_()等方法,使得各个测试用例模块之间更加灵活,互不影响。
pytest则是一个使用最广泛的第三方测试框架。pytest基于unittest的基础上,封装了更加友好和灵活的测试用例组织方式,拥有更多插件,支持参数化等功能。pytest的优点是在基本测试框架的基础上,内置了更多的测试工具和装饰器,便于测试代码编写和执行。
import unittest class Test(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_add(self): self.assertEqual(1+1,2) if __name__=='__main__': unittest.main()
二、页面元素定位工具
在自动化测试中,页面元素的定位是非常重要的一部分。Python中常用的元素定位工具有selenium和pyautogui。
pyautogui是一个基于图像识别的自动化测试工具。pyautogui可以很方便的进行桌面应用测试和网页自动化测试。它支持全屏幕截图、图像标记定位,基于图像的打字和鼠标移动等功能。pyautogui的定位速度相对较慢,但是显然复杂场景下使用它效果更好。
selenium则是一个基于浏览器自动化的测试工具。selenium可以模拟用户在浏览器页面上的行为,如打开页面、输入文本、点击按钮等等,支持多种浏览器,最主要的是可以直接使用python的库进行操作,是目前最为常用的一种自动化测试框架。
from selenium import webdriver from selenium.webdriver.common.keys import Keys browser=webdriver.Chrome() browser.get("http://www.python.org") search=browser.find_element_by_name('q') search.send_keys('Python') search.send_keys(Keys.RETURN) assert 'No results found.' not in browser.page_source browser.close()
三、数据生成工具
自动化测试中,经常会用到数据生成工具。Python中常用的数据生成工具有Faker和HTTPretty。
Faker是一个假数据生成器,它可以按照自定义规则生成假数据,可以生成多种类型的数据,如姓名、地址、电话号码、邮件地址、网址等等。Faker的使用场景非常多,如测试账户注册时填写的数据、数据库测试数据等。
HTTPretty是一个虚拟HTTP客户端。在测试过程中,可以使用HTTPretty来模拟API服务响应,简化API测试代码的编写。
import faker fake = faker.Faker() print(fake.name()) print(fake.address())
四、测试报告生成工具
为了更好的管理测试用例和测试结果,测试报告是自动化测试中必不可少的一部分。Python中常用的测试报告生成工具有HTMLTestRunner、HTMLTestRunnerNew和allure-pytest。
HTMLTestRunner和HTMLTestRunnerNew都是基于unittest框架的测试报告生成工具。它们可以生成HTML格式的测试报告,清晰展示测试结果和测试用例运行情况,拓宽测试人员的测试范围。
Allure-pytest则是一个基于pytest框架的测试报告生成工具。Allure-pytest的优点是生成的报告十分美观,且拥有图表、统计功能等。它支持HTML和PDF格式的报告输出,除了定制测试报告结果,还支持对测试过程中的日志和截图进行输出。
import unittest import HTMLTestRunner class Test(unittest.TestCase): def setUp(self): pass def test_add(self): self.assertEqual(1+1,2) def tearDown(self): pass if __name__=='__main__': suite=unittest.TestSuite() suite.addTest(Test('test_add')) filename='test_result.html' fp=file(filename,'wb') runner=HTMLTestRunner.HTMLTestRunner( stream=fp, title='TestReport', description='Generated by HTMLTestRunner' ) runner.run(suite)
五、持续集成工具
作为当下最流行的DevOps工具,持续集成是不可或缺的一部分。Python中常用的持续集成工具有Jenkins、Travis CI和GitLab CI。
Jenkins是开源的持续集成工具。Jenkins可以实现从代码构建、单元测试、静态代码扫描到部署、测试和发布等整个开发过程,通过配置自动化流水线,支持许多插件且具有开放的API,可以与其他工具集成使用。
Travis CI和GitLab CI都是基于GitHub上的持续集成服务。通过在代码库中添加文件,就能够轻松地进行自动部署和测试了。这两个服务在早期的GitHub上十分受欢迎,由于与GitHub紧密结合,为开发人员提供了更加方便的体验。
总结:Python是目前最流行的自动化测试语言之一,Python在测试领域有着丰富的工具和库可以使用。上述提到的常用测试框架、页面元素定位工具、数据生成工具、测试报告生成工具和持续集成工具是Python自动化测试中不可或缺的一部分,希望这篇文章对大家有所帮助。