如何实现高性能测试自动化

持续部署越来越受欢迎,因此组织对于高性能测试的需要也越来越多。

GoodRx的质量工程部门主管Priyanka Halder,在2020年1月举行的Applitools网络研讨会上,介绍了GoodRx公司在快速发展环境中如何实现高性能测试自动化。

从牢固的基础开始

Priyanka首先谈到了“三只小猪”的故事,她认为着对任何需要在快速发展环境中,构建有效的测试解决方案的组织都具有启发性。

“三只小猪”的故事:

三头小猪各自建房以保护自己免受狼的侵害。第一头小猪在几个小时内盖起了草房。第二只小猪花费一天时间用木头盖房子。第三只小猪用砖和灰泥建造了坚固的基础设施,但这花了几天的时间。狼来吃猪时,炸毁了草房和木屋,但第三只小猪则安然无恙。

组织在快速发展环境中也会遇到许多“狼”,唯一的保障就是建立牢固的基础。

什么是高性能测试

从根本上讲,高性能测试可帮助快速发展的企业提高产品质量。

为什么要进行高性能测试?

根据Priyanka调查分析,她了解到业务技术在过去十年中发生了巨大变化:

  • 范围–当今的应用程序可以在多个平台(Web和移动设备)上运行,而不是在单个浏览器上运行。
  • 频率-我们按需发布应用程序(而不是每年,每季度,每月或每天)。
  • 流程–我们已经从瀑布式发展到持续集成、集成部署
  • 基础框架-曾经组织使用单机部署软件,但今天正在使用云进行开发和交付。

如何实现高性能测试

Priyanka根据自己的经验,建议组织首先问下自身:

  • 团队是否能接受和容忍软件发生失败?
  • 团队之间的沟通有不一致吗?有不清楚的需求设计吗?是否设定了不可能完成的期限?在使用敏捷开发的同时是否使用了瀑布开发?

一旦了解了现有情况,就要开始解决这些矛盾和问题。除此之外,组织还要找到如何提前发现软件错误的方法。

建立高性能测试团队

组织需要能够了解测试方法的工程师,这些方法可以帮助他们的团队创建高质量的产品。

自动化测试的很大一部分涉及技术。测试人员需要熟悉并构建基本代码,以自动识别元素定位符,构建用于自动化的插件,并确保构建之间的一致性以实现自动化。

除技能外,你还需要具有自信和灵活性的个人。这些人需要很好地与其他团队融合。

测试自动化

Priyanka介绍了软件部署过程可以自动化的各个方面。包括:

  • 初始化和清理
  • 数据建模
  • 配置信息
  • API使用情况
  • 面向未来的功能
  • 本地和云设置
  • 速度
  • 调试功能
  • 模拟器/真实设备
  • 报告或插件

高性能测试标准

Priyanka讨论了四项测试标准:测试质量,测试运行时间,测试覆盖范围和测试并发性。

  • 测试质量–软件需要至少通过90%的测试用例。
  • 测试运行时间–每个测试用例建议在两分钟内运行完。
  • 测试覆盖范围–软件测试要能覆盖到关键平台。
  • 测试并发性–在高峰期,软件可用资源能够被使用75%以上。

GoodRx的高性能测试实践

将测试移至生产领域

GoodRx的第一个功能是使用Shift Right方法,将测试移至生产领域。

  • 在生产中进行测试,就可以使用真实数据进行测试。
  • 生产中逐步引入新功能。前提要在不影响客户使用的情况下。
  • 使用CDN之类的快速部署功能,将内部用户引导至新功能。

AI/ML(机器学习)

GoodRx团队也使用了AI/ML工具,这些工具使团队工作效率更高,能够满足高性能测试的需求。

Priyanka说GoodRx使用了Applitools。使用Applitools AI系统,GoodRx可以快速验证要测试的页面。

Applitools可以实现在不到12分钟的时间内完成完整的视觉回归,运行350个测试案例,这其中运行了2500个检查。如果这些通过手动操作,则需要六个小时。

ReportPortal.io

结合ReportPortal.io可以直观地看到软件测试时间,错误等。ReportPortal.io能够显示了一天中不同时间段的测试运行方式,还可以对比得出运行时间最长的测试,以帮助团队进一步改善。

设立高性能测试目标

目标包括:

  • 支持7*24的质量检查。
  • 专门从事测试的SDET团队。
  • 一个强大的框架,它将使任何POC都变得非常简单(即插即用)。
  • 使用Travis测试。
  • 100%的自动化。

建立高性能测试团队

需要同时具有开发素养,测试素养的工程师,测试人员不仅擅长测试自动化,还要具备一定得编码能力。

建立高性能测试技术栈

  • Python和Selenium WebDriver。
  • BDD。
  • Browserstack。
  • Applitools。
  • Jenkins/Travis和Google Drone for CI。
  • Jira,TestRail。

CI/CD的要求:

  • 速度和并行化。
  • BDD( 行为驱动开发 ),便于调试。
  • CICD中的跨浏览器跨设备测试。
  • 视觉验证。

为此,GoodRx团队:

  • 质量检查人员每小时针对最新代码版本运行73个测试,以检查该站点是否正常。
  • 任何新的代码构建都运行在6个浏览器,并确保涵盖所有关键业务路径。
  • 除其他测试外,每晚进行300个回归测试。

结论

正如Priyanka从“三只小猪”的故事开始一样,成功有效的高性能测试,需要对自动化,团队人员,AI/ML和组织基础框架进行投资改造或完善。

译文链接: https://dzone.com/articles/acing-high-performance-tests-for-cicd

K8S中文社区微信公众号

评论 抢沙发

登录后评论

立即登录