云测试自动化框架

传统QA到测开要过渡

Posted by 叉叉敌 on September 19, 2020

环境部署,以及使用的问题, 有没有想过直接在用云创建一个自动化测试框架,动态的分配资源? 可以利用利用 OpenStack,Ubuntu,KVM等开源项目构造了云计算软件测试平台。 1

云计算软件测试平台是一个复杂的软件、硬件和服务的综合体,不同的云测试平台设计和实现的重点也不相同。 2

需求

  • 可移植性高 -要支持多操作系统, 本地和云都可以运行
  • 易于扩展和维护

老的测试环境

预先搭建好,缺少组件模块化。操作不正确就没有办法工作,存在可伸缩性问题。需要进行并行测试或扩展环境本身时,很难扩展预配置的环境

动态分配的环境

由于所有内容都是从头开始创建的,没有必要清楚环境的操作。使用动态创建的环境,您可以随时制定测试计划,并立即获得结果。容易将测试环境与要测试的模块隔离开。云解决方案使我们能够简化创建环境的整个过程,并减少启动和运行这种环境所需的时间。运行并行测试也很容易,最后,动态创建的环境通常具有非常好的文档,每个人都可以在其中检查应如何启动它以及如何工作。 缺点就是创建和维护这样的系统非常昂贵,费时间。需要更多的计算机资源,

测试架构

要创建这个一个demo,需要从一个脚本或者一个服务开始。从统一测试方法的角度来看,既可以在本地也可以在CI系统中工作,因此,脚本越少越好,因为管理起来更容易。

还有一个消息代理(例如RabbitMQ,Apache Kafka等),仅在测试中很少使用。它使我们可以对要测试的数据进行分组。例如,在进行初始冒烟测试以检查系统中的进程是否已启动并正在运行时,我们将在适当的路由键下获取有关该进程的所有信息。

将负责生成数据,记录和发送测试的系统元素分开,则人为错误的可能性将大大降低。当缺少这种分离时,错误可能会导致整个容器以及测试失败。如果存在这种分离,并且每个模块都经过单独测试,我们将收到包含有关已测试模块信息的测试报告。如果这些模块中的某些模块不起作用,我们仍将有一份报告,显示已通过的其他测试。我们只需要确定出了什么问题并解决。如果缺少这种分隔,或者如果出现问题,则需要逐个检查所有测试。显然,这是非常耗时且昂贵的。

在测试过程的最后,我们需要将日志和结果存储在某个地方。它们的存储位置应与系统不同。云提供商是一个好地方,因为如果出现问题,每个人都可以访问。走云路线还可以节省时间,尤其是在DevOps和QA团队位于不同时区时。消息代理还可以用于控制应报告哪些数据。例如,它可以用于向数据供应商发送消息以开始报告CPU或RAM使用情况。

1

用于CI测试

从 GIT 存储库加载适当的配置,运行并运行整个过程,构建要测试的组件并执行测试。测试完成后,将生成并发送结果。我们可以使用自动通知解决方案,如 Slack 插件来说明测试是否成功。当然,最简单的解决方案是拍摄一封电子邮件,但我不建议这样做,因为将有很多这样的电子邮件,很难保持所有这些顶部。最好将测试结果存储在云存储中,并配有适当的标记和参考编号,以便以后可以轻松跟踪测试结果。我们的容器存储在用于容器存储的服务中,以便在执行新的测试过程时可以重复使用它们。

2

成本和效益

主要是云计算资源,还有就是存储log的云存储。 消息代理可以是获得对测试过程的完全控制的巧妙方法。归根结底,所有测试都应构成 CI/CD 管道的组成部分,并且应在软件项目开始时开始。

拓展阅读

http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html https://github.com/openstf/stf https://codilime.com/how-to-build-a-test-automation-framework-in-the-cloud/

http://cloud.it168.com/a2014/1013/1672/000001672914.shtml

http://manu44.magtech.com.cn/Jwk_infotech_wk3/EN/article/downloadArticleFile.do?attachType=PDF&id=3647