需求
在linux服务器回放本地录制的脚本,并生成allure报告,通过固定链接的方式展示报告。
本文只对服务器端运行uirecorder脚本及allure报告展示的配置方式做介绍,录制运行代码的介绍参考官方文档:docker uirecorder allure nginx
方案
- 本地录制uirecorder脚本,并通过git同步到服务器
- 使用docker搭建chromedriver服务
- 使用npm docker运行uirecorder脚本
- allure生成测试报告
- 将测试报告放在nginx静态文件目录进行展示
1. ui recorder配置
pachage.json
将输出报告方式改为 --reporter mocha-allure-reporter
{
"name": "uirecorderTest",
"version": "1.0.0",
"description": "",
"main": "",
"dependencies": {
"chai": "3.5.0",
"jquery": "3.x",
"jwebdriver": "2.3.4",
"macaca-mocha-parallel-tests": "2.x",
"macaca-reporter": "^1.3.24",
"mocha": "5",
"mocha-allure-reporter": "^1.4.0",
"resemblejs-node": "1.0.0",
"selenium-standalone": "6.x.x"
},
"scripts": {
"installdriver": "selenium-standalone install --drivers.firefox.baseURL=http://npm.taobao.org/mirrors/geckodriver --baseURL=http://npm.taobao.org/mirrors/selenium --drivers.chrome.baseURL=http://npm.taobao.org/mirrors/chromedriver --drivers.ie.baseURL=http://npm.taobao.org/mirrors/selenium",
"server": "selenium-standalone start",
"singletest": "mocha --reporter macaca-reporter --reporter-options reportJSONFilename=index,processAlwaysExitWithZero=true --bail",
"test": "mocha \"*/*.spec.js\" --reporter mocha-allure-reporter --reporter-options reportJSONFilename=beesConsole,processAlwaysExitWithZero=true ",
"paralleltest": "macaca-mocha-parallel-tests \"!(node_modules)/**/*.spec.js\" --reporter macaca-reporter --reporter-options reportJSONFilename=index,processAlwaysExitWithZero=true --max-parallel 5 --bail",
"moduletest": "macaca-mocha-parallel-tests --reporter macaca-reporter --reporter-options reportJSONFilename=index,processAlwaysExitWithZero=true --max-parallel 5 --bail"
},
"author": ""
}
2. selenium chrome运行环境
容器端口号与配置端口号需要一致
docker run -d \
--name chrome_headless \
-p 4444:4444/tcp \
--user seluser \
-v /dev/shm:/dev/shm \
selenium/standalone-chrome:3.141.59-dubnium
config.json
{
"webdriver": {
"host": "linux服务器的局域网IP",
"port": "4444",
"chromeOptions": {
"w3c": false
},
"browsers": "chrome"
},
"vars": {},
"reporter": {
"distDir": ""
},
"screenshots": {
"captureAll": true
},
"recorder": {
"pathAttrs": "data-id,data-name,type,data-type,role,data-role,data-value",
"attrValueBlack": "",
"classValueBlack": "",
"hideBeforeExpect": ""
}
}
3. npm运行容器
添加 Dockerfile
FROM node:latest
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
在项目目录下执行命令
docker build -t my-npm:latest .
docker run --rm -v /home/user/ui-automation:/app -d my-npm:latest npm run test
4. allure报告生成
allure generate allure-results --clean -o test-report --clean
5. nginx报告展示
cp -r test-report /path/ti/nginx/www/test-report
可通过链接访问报告 http://服务器IP/test-report/index.html