pa11y json 动作配置文件:https://github.com/pa11y/pa11y#actions

pa11y json configuration file for actions : https://github.com/pa11y/pa11y#actions

我们使用 jenkins CI 工具进行由 pa11y 提供的自动辅助功能测试。因此,我使用下面的 Jenkinsfile 来 运行 测试。

node('mypod') {

container('centos') {

def NODEJS_HOME
env.NODEJS_HOME = "${tool 'Node-12.0.0'}"
env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
sh "'${env.NODEJS_HOME}'/bin/node --version"
sh "npm install -g pa11y --unsafe-perm"
sh "pa11y -V"

sh '''curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
      yum -y install ./google-chrome-stable_current_*.rpm
      yum -y install libXScrnSaver
      yum -y install atk java-atk-wrapper at-spi2-atk gtk3 libXt'''

withCredentials([file(credentialsId: '***', variable: 'pa11yconfig')]) {
    
sh "cat $pa11yconfig > config.json"

sh "pa11y --config config.json --ignore WCAG2AA.Principle3.Guideline3_2.3_2_2.H32.2 --ignore WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail --ignore WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail --threshold 6 --reporter cli https://$URL > results.json"

}     
}
}

它在基于 linux 的节点上针对指定的 URL 安装必要的东西 运行 pa11y。 Windows 太麻烦了,所以我们使用 linux 来实现。 此外,为了让浏览器启动,我们使用下面的 config.json 文件让 pa11y 工作。

{
    "chromeLaunchConfig": {
        "args": [
            "--no-sandbox",
            "--disable-setuid-sandbox",
            "--disable-dev-shm-usage"
        ]
    }
}

所有这些对我们提供的任何 URl 来说都是一种魅力。 现在我们想要一些高级配置,让我们测试登录是否有效或在网站的网页上填写表格,因此可以使用 pa11y 提供的操作。 我应该如何将 Actions 代码合并到这个 json 配置文件中才能实现。 操作记录在:- https://github.com/pa11y/pa11y#actions

如有任何帮助或建议,我们将不胜感激!

像这样:

    "chromeLaunchConfig": {
        "args": [
            "--no-sandbox",
            "--disable-setuid-sandbox",
            "--disable-dev-shm-usage"
        ],
    },
    "reporter": "cli",
    "threshold": 6,
    "ignore:" [
        'WCAG2AA.Principle3.Guideline3_2.3_2_2.H32.2',
        'WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail',
        'WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail'
    ]
    "actions": [
        "navigate to $URL",
        "wait for $ThingToHappen"
    ]
}

(我还包含了您当前直接传递给 CLI 的选项,以防您感兴趣)