这里的兼容性是指:不同浏览器、不同版本的兼容性问题。

背景

整个 AntV 的所有模块可以理解都是数据可视化的浏览器模块,但是所有的模块:

  1. 都没有做完整的浏览器兼容性测试
  2. 都没有任何文档指示出浏览器的兼容性情况(IE xx,Chrom vxx+ …)

开发者在做技术选型,或者针对自己业务稳定性等,是一个大黑盒。

目标

  1. 为 G2 栈做浏览器兼容性测试,GitHub 文档上提供兼容性情况,并尽可能提高兼容的范围
  2. 工具保障后续迭代的浏览器兼容情况,不管是人工还是自动,现有一个措施能做到
  3. 扩展到整个 AntV

执行方案

一、检测浏览器兼容性

两个方案:

  • 全自动
  1. 准备一个用于测试的页面

开发一个最简 demo(html + webpack),防止因为 react 等其他依赖库导致的浏览器兼容问题。部署到国内镜像的 cdn,便于提升打开速度。(aliyun oss 极好)

  1. 利用 F2ETest 的云浏览器功能

结合 webdriver 的方式,对页面在多浏览器中打开并截图,并存储截图到本地。

  1. 对比,产出报告

利用不同浏览器的截图进行对比,生成一张对比的图,然后自动生成浏览器兼容的报告。

  • 手动
  1. 准备一个用于测试的页面
  2. F2ETest 的页面中逐个浏览器点开
  3. 最终人工判定浏览器兼容性

调研发现,F2E 截图,仅仅支持 chrome,这个是底层 webdriver 决定的,所以无法进行完全自动化了。只能做手动的方式了。

二、兼容性提升

根据 一 中的结论,针对性进行提升兼容性,可能是:

  • 代码上的兼容处理
  • FAQ 中增加文档,怎么提升兼容性

结论

G2 G2Plot Charts 的浏览器兼容为:

Testing Date Chrome IE FireFox
2021-02-28