一.本地环境开发用例调试用例
用例编写本身也是需要调试和开发的。(公司很多测试平台在线编写测试用例搞不懂怎么调试和运行)。所以在我们项目中我们支持了本地编写调试用例。
实现代理的方式如下:(全局setup.js)
const redux = path.resolve(__dirname, './extension/redux');
const args = [
'--allow-running-insecure-content', //允许不安全的脚本
'--no-sandbox',
'--disable-setuid-sandbox',
'--auto-open-devtools-for-tabs',
'--disable-dev-shm-usage',
'--allow-cross-origin-auth-prompt',
];
if (is_dev) {
args.push('--proxy-server=127.0.0.1:8080'); //本机代理
args.push('--disable-extensions-except=' + redux, '--load-extension=' + redux); //运行的插件
} else {
}
const browser = await puppeteer.launch({
executablePath: '/Applications/Chromium.app/Contents/MacOS/Chromium',
headless: !is_dev,
args,
ignoreHTTPSErrors: true,
});
1.这里加了很多实用参数,比如允许不安全脚本,自动打开devtools,加载redux开发者插件。 headless如果是dev模式则可见浏览器。
2.设置代理加上args.push('--proxy-server=127.0.0.1:8080'); 就可以代理到本机了。
这样我们就可以在浏览器调试用例执行过程。
二.测试用例启动流程
调用命令npm run jest后,在setup里面做了一系列初始化浏览器操作和登录操作后,然后并发执行每个测试用例。每个用例对应一个页面。等待用例执行结束后每个页面生成覆盖率数据,我们把覆盖率数据保存。覆盖率的生成在第四章会详细说明如何实现。
三.ci和git环境的结合
我们项目中是使用分支开发。如果分支开发测试完成提交git的merge request。这个时候git可以通过web hook请求ci编译运行自动化测试。