我被分配了一项任务,将我开发的自动化测试集成到AWS CI/CD管道中,我现在正在研究如何实现这一任务。在做了一些研究之后,我发现很多人已经使用像Jenkins/ Docker这样的工具来完成这项任务,即使做了所有的研究,我仍然对实现这一任务的最佳方法感到困惑,以下是我找到的一些文档,
https://www.pawangaria.com/post/docker/how-to-use-docker-with-webdriver/
https://dzone.com/articles/qa-automation-pipeline-learn-how-to-build-your-own-1
我应该做的是,一旦开发人员正在开发的web应用程序通过管道部署,我将不得不通过管道运行selenium测试,以检查web应用程序是否正确部署。(这就是我需要澄清的地方,什么是实现这一目标的最佳方法)
我使用selenium脚本构建了一个maven项目来检查web应用程序上的内容,现在我在脚本中使用了一个虚拟url,下面是maven项目。
https://github.com/nimeshdilshan96/pipeline-script-test.git
这就是我所做的-到目前为止,
我在本地PC上运行了一个docker容器(这是我使用的docker镜像,并且有一个在docker容器上运行测试的maven项目
在这一点上,我真的很困惑和卡住了应该做什么,这里是一些问题,我正在寻找答案,
在单独运行或在docker container?
任何帮助都将不胜感激,提前感谢:)
发布于 2019-05-22 06:08:28
我使用了两种方法:
在这两种情况下,CodePipeline都包含4个步骤:
每一步都会产生输出,用于下一步。部署步骤生成selenium可以使用的URL。在我的例子中,"deploy“是部署一个CloudFormation堆栈,但它也可以将必要的文件复制到S3存储桶中或使用其他方法。
我的设置与https://aws.amazon.com/blogs/devops/using-aws-codepipeline-aws-codebuild-and-aws-lambda-for-serverless-automated-ui-testing/类似,但要简单得多。
挑战
最大的问题是获得selenium、浏览器和webdriver的正确组合。关于如何做到这一点有不同的指南。尝试适合你的方法,所有的实现都很混乱,但我认为Docker更可靠。
示例docker-compose:
version: '2'
services:
hub:
image: selenium/hub:3.3.1
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome:3.3.1
links:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
DBUS_SESSION_BUS_ADDRESS: /dev/null
firefox:
image: selenium/node-firefox:3.3.1
links:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
phantomjs:
image: selenium/node-phantomjs:3.3.1
links:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
PHANTOMJS_OPTS: "--ignore-ssl-errors=true"
b3-test:
build: .
volumes:
- ./logs:/app/survey-tests/logs
- ./screenshots:/app/survey-tests/screenshots
environment:
- BTEST_DRIVER=REMOTE
- BTEST_REMOTE=http://hub:4444/wd/hub
发布于 2019-02-23 11:25:58
在理解了您的问题陈述之后,很明显,您正在寻找CI/CD工具以及测试用例的并行实现,以减少执行时间。
对于希望实现频繁交付方法(如持续集成和交付)的软件开发团队来说,减少测试执行时间是关键。
首先,我们应该理解CI/CD工具是Jenkins、或Team City。另一方面,我们实现并行或分布式测试用例执行的不同方式是使用Selenium Grid & Docker
使用Selenium Grid, one可以在多台机器上并行运行多个测试,从而将执行时间从几天减少到几个小时。
Docker 在使用网格以非常简单的步骤设置测试实验室方面提供了很大帮助,同时帮助消除了所有复杂性,Docker专业包括
与尝试从头开始设置Selenium相比,使用预制容器启动和运行要快得多。你不需要安装Java #winning。
你不需要安装所有必要的浏览器。也许你不想安装Firefox,或者想用特定的老版本的Chrome或具有特定插件或功能的浏览器进行测试?
竹子CI/CD工具: Jenkins vs. TeamCity vs.
什么是Jenkins?
Jenkins是当今市场上最流行的开源CI/CD工具。Jenkins允许开发人员在将代码提交到源代码库后立即自动构建、集成和测试代码。这使开发人员能够快速捕获错误,并最终更快地进行部署。
什么是竹子?
竹子服务器是一台来自亚特兰大的CI/CD服务器。就像其他CI/CD服务器一样,竹子允许开发人员自动构建、集成和测试源代码,然后为部署准备应用程序。竹子还可以与Atlassian的其他工具(如Jira)无缝协作。
什么是TeamCity?
TeamCity是另一种商业CI/CD服务器,这次来自JetBrains公司。它以其令人难以置信的简单设置和漂亮的用户界面而闻名。
因此,请根据您的应用程序和测试依赖项&需求,以及您在一天结束时想要实现的目标,给出一个思考过程。首先在设计和方法上工作,然后请转向实施。
https://stackoverflow.com/questions/54822954
复制相似问题