当前位置: 首页 > 知识库问答 >
问题:

在GitLab CI中使用"driverTarget"运行空手道UI测试

壤驷茂实
2023-03-14

问题是:我想使用driverTarget选项运行空手道UI测试,以测试我的Java Play应用程序,该应用程序在本地运行,与sbt run的任务相同。

我有一个简单的断言来检查属性,但每当测试运行时,我总是得到“描述”:“TypeError:无法读取null的属性'getAttribute'。这是我的karate-config.js:

if (env === 'ci') {
karate.log('using environment:', env);
karate.configure('driverTarget',
    {
        docker: 'justinribeiro/chrome-headless',
        showDriverLog: true
    });
}

这是我的测试场景:

场景:测试1:一些测试给出了驾驶者的答案http://localhost:9000'

  • 等待直到("document.ready状态=='完成'")
  • 匹配属性('一些选择器','一些属性') == '什么'我的猜测是,因为ustinribeiro/chrome-head less在自己的容器中运行,localhost:9000在容器中与在容器外部运行的内容不同。

有什么解决办法吗?谢谢

共有2个答案

黄意智
2023-03-14

此外,我能够在CI(GITLAB)中使用ptrthomas/空手道铬图像,方法是在我的gitlab-ci.yml文件中插入以下内容

  stages:
    - uiTest

  featureOne:
    stage: uiTest
    image: docker:latest
    cache:
      paths:
        - .m2/repository/
    services:
      - docker:dind
script:
      - docker run --name karate --rm --cap-add=SYS_ADMIN -v "$PWD":/karate -v 
"$HOME"/.m2:/root/.m2 ptrthomas/karate-chrome &
      - sleep 45
      - docker exec -w /karate karate mvn test -DargLine='-Dkarate.env=docker' Dtest=testParallel
    allow_failure: true
    artifacts:
      paths:
        - reports
        - ${CLOUD_APP_NAME}.log


my karate-config.js file looks like
    if (karate.env == 'docker') {
        karate.configure('driver', {
            type: 'chrome',
            showDriverLog: true,
            start: false,
            beforeStart: 'supervisorctl start ffmpeg',
            afterStop: 'supervisorctl stop ffmpeg',
            videoFile: '/tmp/karate.mp4'
        });
    }
吕高雅
2023-03-14

docker容器无法按照发布的内容与localhost端口通信:“我猜是因为justinribeiro/chrome headless在自己的容器中运行,所以容器中的localhost:9000与容器外部运行的localhost:9000不同。”

要解决这个问题,并让docker容器与localhost端口上运行的应用程序通信,请使用命令主机。码头工人。内部的

更改为:从:给定的驱动程序http://localhost:9000“.
致:给定驾驶员”http://host.docker.internal:9000'

 类似资料:
  • 我在容器中运行空手道UI测试时遇到了问题。我可以清楚地在本地运行测试。但是我在容器中运行的测试显示“错误com.intuit.karate-驱动配置/启动失败:”我使用的驱动配置如下 配置驱动程序={type:'chrome',headless:true,showDriverLog:true,addOptions:['--incognito'],httpConfig:{readTimeout:12

  • 我无法使用CLI执行测试。跑者工作。我正在使用版本0.9.5.rc5和maven命令:“mvn test-f pom.xml exec:java-dexec.mainclass=com.intuit.karate.cli.main-dexec.args='-d'-dexec.classpathscope=test” 以下是错误:ERROR com.intuit.karate-driver conf

  • 我无法在我的功能中运行空手道测试 不知道我错过了什么。对于api自动化世界来说是非常新的。非常感谢任何帮助。

  • 并将我的文件保存如下: Runner类: 把这个放到我的大楼里。格雷德尔: 但我得到的回应是: 但是,我不能看到我的测试是否通过。我做错了什么? 分级版本:2.14.1

  • 我有以下xml: 我有两个测试用例: 我想用单一指南测试。 我想用两个向导测试。 我为两个测试用例创建了2个独立的xml,它起作用了。这里的问题是如何使用通用的xml?我也尝试使用删除,但我如何从xml删除单个guid?

  • 你能帮助我有没有什么方法运行空手道跑者文件与TestNG框架工作。你的答案真的会让我们做出决定。 我经历了各种与空手道相关的测试的帖子。但不幸的是我无法触发我的脚本。 注意:我在代码中扩展了KarateRunner类并使用了@KarateOptions。