这里的兼容性是指:不同浏览器、不同版本的兼容性问题。
背景
整个 AntV 的所有模块可以理解都是数据可视化的浏览器模块,但是所有的模块:
- 都没有做完整的浏览器兼容性测试
- 都没有任何文档指示出浏览器的兼容性情况(IE xx,Chrom vxx+ …)
开发者在做技术选型,或者针对自己业务稳定性等,是一个大黑盒。
目标
- 为 G2 栈做浏览器兼容性测试,GitHub 文档上提供兼容性情况,并尽可能提高兼容的范围
- 工具保障后续迭代的浏览器兼容情况,不管是人工还是自动,现有一个措施能做到
- 扩展到整个 AntV
执行方案
一、检测浏览器兼容性
两个方案:
- 全自动
- 准备一个用于测试的页面
开发一个最简 demo(html + webpack),防止因为 react 等其他依赖库导致的浏览器兼容问题。部署到国内镜像的 cdn,便于提升打开速度。(aliyun oss 极好)
- 利用 F2ETest 的云浏览器功能
结合 webdriver 的方式,对页面在多浏览器中打开并截图,并存储截图到本地。
- 对比,产出报告
利用不同浏览器的截图进行对比,生成一张对比的图,然后自动生成浏览器兼容的报告。
- 手动
- 准备一个用于测试的页面
- F2ETest 的页面中逐个浏览器点开
- 最终人工判定浏览器兼容性
调研发现,F2E 截图,仅仅支持 chrome,这个是底层 webdriver 决定的,所以无法进行完全自动化了。只能做手动的方式了。
二、兼容性提升
根据 一 中的结论,针对性进行提升兼容性,可能是:
- 代码上的兼容处理
- FAQ 中增加文档,怎么提升兼容性
结论
G2 G2Plot Charts 的浏览器兼容为:
Testing Date | Chrome | IE | FireFox |
---|---|---|---|
2021-02-28 |