阿里5年经验之谈 —— 浅谈自动化测试方法!_自动化测试 测试数据准确性(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

导读

在当今快节奏的软件开发环境中,高质量的代码交付至关重要。而针对经过多次迭代,主要功能趋向稳定的产品,大量传统的重复性手动测试方法已经无法满足高效、快速的需求。为了提高测试效率保证产品质量,本文通过产品实践应用,引入一种强大而易用的自动化测试方法——Python+Requests+Pytest。

Part 01

●  为什么使用自动化测试

自动化测试是一种使用软件工具和脚本来执行测试用例的方法,能够以比传统手动测试更高的效率、速度和准确性来验证软件的正确性。在不同阶段的开发周期中,自动化测试可以为团队带来诸多好处。

➤ 自动化测试提高了测试流程的效率

通过编写可复用的测试脚本,自动化测试能够快速而准确地执行大量用例,省去手动执行测试的繁琐过程。使得测试团队能够专注于更有意义的工作,如测试设计、缺陷管理和结果分析等。

➤ 自动化测试大大减少了人为错误的风险

相比于人工操作,自动化测试在执行测试过程中减少了潜在的人为错误,提高了测试的准确性和一致性。能够帮助团队更早地发现和修复问题,提高软件的稳定性和质量。

➤ 自动化测试可以提高测试覆盖率

通过编写全面的测试脚本,自动化测试能够覆盖更多的测试场景和边界条件,发现隐藏的缺陷并提前预防潜在问题,有助于降低软件开发周期中的风险,并提高用户体验。

在产品测试过程中,我们已经应用自动化测试并取得了显著的成果。无论是对于测试团队还是开发团队,自动化测试都能为我们节省大量时间和资源。传统的手动测试需要投入大量的人力和时间,而自动化测试可以帮助团队节约宝贵的时间和资源,让团队可以更好地应对快速迭代、紧张的发布计划和复杂的测试需求。

Part 02

●  常见的自动化测试方法对比

2.1 Python+Selenium

  • 功能:主要用于自动化执行Web UI测试,可以模拟用户在浏览器中的行为,如点击、输入和页面导航等。
  • 使用难度:需要基本的编程基础,编写脚本来模拟用户操作。
  • 执行效率:需要实际运行浏览器来执行测试,可能会占用较多的系统资源和时间。尤其是在大型测试套件中,执行速度可能会受到影响。
  • 生态系统与扩展性:作为Python的一部分,拥有强大的生态系统和丰富的第三方库,提供了大量的资源和支持。

2.2 Postman

  • 功能:专注于接口测试和API测试,提供强大的界面和功能,可以轻松设置和发送HTTP请求,并验证返回结果。
  • 使用难度:拥有直观友好的用户界面,无需编写代码,易于上手使用。即使没有编程经验,也可以通过简单的图形界面操作完成测试。
  • 执行效率:由于直接发送HTTP请求,并且没有浏览器渲染的开销,因此执行速度相对较快,适合大规模的接口测试。
  • 生态系统和扩展性:有庞大的用户社区和丰富的第三方插件,可以扩展测试的功能,例如生成报告、集成测试等。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

2.3 Python+Requests

  • 功能:灵活的HTTP库,用于发送各种类型的HTTP请求,如GET、POST、PUT和DELETE,并对响应进行验证。
  • 使用难度:需要一定编程知识,通过编写Python脚本来发送HTTP请求和验证响应。对于有Python经验的开发人员来说会更加容易上手。
  • 执行效率:具有较高的执行效率,适用于大型项目或需要频繁执行测试的情况。
  • 生态系统和扩展性:作为Python的一部分,拥有庞大的社区和丰富的生态系统,可以轻松集成其他库和框架,满足复杂的测试需求。

图片

通过从功能效果、使用难度、执行效率和功能扩展等多方面进行综合考量可以得出结论,Python+Selenium WebUi属于较重量级测试工具,要求产品界面稳定,功能变化小等要求;采用这种方式测试脚本输出的速度较慢,后期维护较为耗时间;而Postman的优点为上手较快,输出用例较快,但其缺点也比较明显,无测试套导致用例无法进行隔离,问题定位困难,团队协同开发存在一定困难;Python+Requests方法在覆盖度上较于UI自动化较弱,但无论是协同开发及登陆适配等,简单易用、轻量级、灵活性、可扩展性、丰富的资源和跨平台兼容性等均有一定优势,因此最终我们选择Python+Requests方法进行自动化测试。

Part 03

●  架构优势

自动化测试框架我们选择了Pytest,Pytest自动化框架主要具有以下优势:

  • 简单灵活,容易上手

Pytest不需要使用繁琐的类继承和装饰器,而是使用了一种更简洁的测试函数和约定来组织测试代码;Pytest会自动查找项目中以"test_“开头或以”_test"结尾的文件、模块和函数,并将其识别为测试用例。此外,Pytest支持多种断言方式,包括内置的Assert语句、第三方的Assert库(如Pytest-assume、Pytest-check等)以及自定义的断言函数,可以选择最适合的断言方式,检查代码的正确性,快速定位问题,并及时修复。

  • 支持参数化

Pytest支持参数化测试,可以使用@Pytest.mark.parametrize装饰器为测试函数传递不同的参数,并运行多次测试,简化重复测试代码的编写和维护,提高测试用例的重用性。

  • 丰富的插件生态系统并且可以自定义扩展

Pytest拥有大量的第三方插件,可通过安装配置插件来扩展和定制测试框架的功能,从而满足各种测试需求。而且,Pytest可以和Allure结合生成非常易读的定制的报告,还可以和Jenkins实现持续集成。

总体来说,Pytest是一个功能强大、易用且灵活的自动化测试框架。无需手动管理测试套件,可以快速添加、删除或修改测试文件,简化了测试用例的组织和维护。它广泛应用于Python项目中,为测试团队提供了一种简洁、高效和可拓展的方式来编写和管理测试用例。Pytest的高灵活性和高扩展性,使得定制化测试框架变得非常简单。

Part 04

●  实践应用

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化的资料的朋友,可以戳这里获取