持续部署越来越受欢迎,因此组织对于高性能测试的需要也越来越多。
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
登录后评论
立即登录 注册