1

我们使用 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

任何帮助或建议将不胜感激!

4

1 回答 1

2

像这样的东西:

    "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 的选项,以防您感兴趣)

于 2022-02-03T14:29:35.473 回答