在当前社会项目市场需求的场景下,项目需求不明确、项目根据市场需求的日益变化而频繁变更、项目时间短且需要快速交付给甲方,敏捷开发俨然成为了很多项目团队的不二之选,而在敏捷开发中,测试工作也是很重要的一个环节,只有通过测试的软件,才能交付到客户的手中。测试工作能在敏捷开发中确保软件质量,提高用户体验,减少软件应用过程中的风险,确保软件的合规使用,保持良好的客户关系担任了一个重要的角色。

此处了解的自动化测试为软件测试的自动化,自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。(注:此段文字来源于百度百科)
自动化测试相对于人力测试来说,执行效率高、测试准确度高、代码可重复使用性高、节约人力成本,最重要的是自动化测试可以提高软件开发过程的效率和质量。(注意,并不是所有的测试都可以由人工测试转为自动化测试,这个是一个不成立的结论,自动化测试只能能提升效率的工具或者概念,根据具体的场景来确认、或者具体的业务来确认是否可支持自动化测试)

自动化测试在IT信息系统中中可以有如下分类:
在IT系统中,单元测试是测试中最基础,也是最简单的一个。单元测试是对软件中最小的可测单元进行验证,通常由开发人员编写,并针对代码中的函数或方法进行验证。
在IT系统中,将多个独立模块或组件组合在一起进行验证,旨在检测不同模块之间的接口问题和协同工作问题。
在IT系统中,对整个软件系统进行验证,确认系统是否满足可行性研究报告中用户规定的需求和设计规范。
在IT系统中,对软件系统的性能进行评估和验证,检测系统在不同负载下的响应时间、吞吐量和资源利用率等指标。
在软件使用中,对软件系统的安全性进行评估和验证,检测系统中存在的潜在安全漏洞和风险。
易用性和可靠性测试旨在对软件系统的用户友好程度、稳定性和可靠性进行评估和验证,检验检测否满足用户的操作习惯和期望。
兼容性测试是测试软件系统在不同平台、不同浏览器和不同设备上运行情况进行评估和验证。
图形用户界面测试也叫GUI测试,GUI测试的主要对象是图形对象(包括控件)和对象的属性集合。这些对象包括但不限于窗口、菜单、按钮、文本框、图标、标签等组件,这个在自动化测试中很具有挑战性。
自动化测试工具能够模拟用户行为,自动执行测试用例,并报告测试结果,从而极大地提高了测试效率和质量。
Selenium是一个用于Web应用程序测试的自动化测试框架,支持多种编程语言,如Java、Python等。可以直接在浏览器中运行测试,模拟真实用户操作。支持多种浏览器和操作系统,便于进行跨平台测试。提供丰富的测试功能,包括兼容性测试、系统功能测试等。Selenium支持很多种语言,包括C#、Java、Perl、PHP、Python、Ruby、JavaScript、C++。
【官网】www.selenium.dev

Appium是一个移动端自动化测试开源工具,跨平台支持,移动平台支持iOS和Android平台;浏览器支持Chrome、Firefox、Safari;桌面平台支持macOS、Windows;还支持TV平台,Roku、tvOS、Android TV、Samsung。可以在不同操作系统上运行相同的测试脚本。Appium提供丰富的API接口,便于编写和执行测试脚本,方便进行移动应用测试。Appium作为一个跨平台的自动化测试工具,支持多种编程语言来编写测试脚本,Java、Python、PHP、Ruby、JavaScript(Node.js)、Objective-C、C#(.NET)。
【官网】http://appium.io/
【Github】https://github.com/appium/appium

LoadRunner是一种预测系统行为和性能的负载测试工具,适用于Web应用程序和企业应用程序测试,由Micro Focus公司开发的企业级性能测试工具。它支持广泛的协议和技术,包括Web应用程序、数据库、ERP系统、移动应用程序等。LoadRunner提供丰富的测试场景和功能,支持录制回放、脚本编辑、场景设计,能够模拟大量并发用户进行测试(收费版本更舒服些),快速发现性能瓶颈,提供详细的测试报告和分析工具,帮助测试人员深入了解测试结果,LoadRunner适用于大型、复杂的性能测试场景,需要较高的硬件和技术支持。不过,LoadRunner是商业版软件,使用时需要使用一些小技巧。
【官网】https://www.opentext.com/zh-cn/products/loadrunner-professional

JMeter是Apache组织开发的一款开源免费的性能测试工具,主要用于测试Web应用程序和Web服务的性能和负载能力。。它最初被设计用于Web应用功能测试,但如今已广泛用于性能测试。用户可以免费使用并修改源代码,可运行于多种操作系统和硬件环境,目前最新的版本为JMeter 5.6.3。JMeter支持多种协议:包括HTTP、FTP、JDBC、SOAP等,满足不同类型应用的测试需求。JMeter功能丰富,支持负载测试、压力测试、功能测试等多种测试场景。
【官网】https://jmeter.apache.org/
【Github】https://github.com/apache/jmeter

Postman是一个强大的API测试工具,用于调试和测试HTTP请求。支持发送各种类型的HTTP请求,包括GET、POST、PUT、DELETE等。供测试数据和环境配置数据的导入导出功能。团队协作功能强大,可以创建TeamLibrary用于团队协作式的测试。在自动化测试上,算是一个老牌的辅助测试工具,Postman允许在请求的“Tests”标签中编写JavaScript脚本,对响应结果进行验证。通过测试脚本,可以实现断言、日志记录等功能。不过个人感觉,Postman在自动化测试上不如前面几款软件实用。
【官网】https://www.postman.com/

Robot Framework是一款由Nokia Siemens Networks开发并提供的、基于Python编写的功能自动化测试框架。由于接触Python开发少些,我在开发过程中使用这款软件比较少。Robot Framework是开源的、可扩展的、多客户端且支持分布式环境测试的一款软件。他主要支持的功能有:测试执行事件监听、命令行接口和XML输出、丰富的测试库、多种用例编写格式、自动生成测试报告和日志。Robot Framework主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。在全球化测试时,可以用此框架来编写一些脚本任务,如定时下载daily build,配合Selenium完成自动化截图等。此外,Robot Framework还支持关键字驱动和数据驱动测试,方便用户根据测试需求进行灵活配置。
【官网】https://robotframework.org/
【Github】https://github.com/robotframework/robotframework

为了方便演示,此处采取其中一个自动化测试软件(JMeter)作为测试工具来进行测试。
步骤1、下载与安装:从Apache JMeter官方网站下载最新版本的JMeter(我机器已经安装版本低v5.1)。按照安装指南进行安装,并配置环境变量。
步骤2、确保开发工具、库文件已就绪,准备好测试脚本,这些脚本可以手写,也可以通过录制系统生成(推荐方式)。
步骤3、配置JMeter以连接到测试环境,包括设置代理服务器、浏览器证书等。创建HTTP请求默认值,以便在测试脚本中重用。
安装完成后的目录如下:
Aion@Macbook apache-jmeter-5.1 $ tree -m 1
/Aion/install/apache-jmeter-5.1 (169.06MB)
├── .DS_Store (1KB)
├── printable_docs (3.79MB)
├── LICENSE (14.59KB)
├── bin (74.98MB)
├── licenses (217.93KB)
├── docs (40.83MB)
├── NOTICE (172b)
├── README.md (9.96KB)
├── lib (49.09MB)
├── backups (6KB)
├── testfile (1KB)
└── extras (109.9KB)步骤1、创建测试计划,在JMeter中创建一个新的测试计划。添加线程组,用于模拟并发用户。
步骤2、录制测试脚本,设置浏览器代理,指向JMeter的HTTP代理服务器。在浏览器中执行需要测试的操作,JMeter将录制这些操作作为测试脚本。
步骤3、修改与完善脚本,根据需要修改录制的脚本,包括添加断言、配置参数化等。使用JSON提取器等后置处理器获取并处理响应数据。
步骤1、添加监听器以监控测试执行过程,如查看结果树、聚合报告等。用于帮助分析测试结果并识别潜在问题。
步骤2、使用CSV Data Set Config等参数化工具,以便在测试中使用不同的数据组合,模拟真实用户行为并提高测试的覆盖率。。
步骤3、运行测试计划,并观察监听器中的输出结果。根据需要调整线程数、迭代次数等参数,以模拟不同的负载场景。
当执行完成测试,分析测试结果,查看聚合报告等监听器输出的结果,分析测试通过率、响应时间等指标。识别失败的测试用例,并查看详细的错误信息以进行调试。优化测试脚本,根据分析结果优化测试脚本,如调整断言条件、优化参数化策略等。重复执行测试,直到达到预期的测试效果。持续集成与自动化,将JMeter测试集成到CI/CD管道中,实现自动化测试。使用Jenkins等工具配置Job,定期执行测试并生成报告。

本篇主要讲述测试、自动化测试,从IT信息系统的实践中总结测试环节中的自动化测试,以及自动化测试分类、测试工具以及JMeter的实践步骤。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。