UI自动化测试设计

技术选型

浏览器驱动框架: selenide。 这是一个基于web driver的开源框架, 是一群老外在github上开源的基于PC浏览器进行自动化的测试框架。 文档:

http://selenide.org/documentation.html

https://testerhome.com/topics/5682

report框架:allure。 这是一个开源的测试report框架,支持多个语言的多个单元测试框架。可以形成特别友好的测试报告。 文档:

https://github.com/allure-framework/allure1/wiki

https://testerhome.com/topics/5738

testng: 基于java的单元测试框架, 与Junit并驾齐驱。

docker-selenium:selenium官方制作的可执行镜像,分为grid hub镜像和grid node镜像。 很方便的提供分布式执行UI自动化测试的解决方案。 

https://github.com/SeleniumHQ/docker-selenium

kubernetes:docker的容器集群管理框架。 通过它可以让grid node分布在不同的节点上,分担压力。

https://kubernetes.cn/

分布式UI自动化说明

grid 是selenium官方团队发布的分布式UI自动化解决方案。 采取master-worker的设计原则。主要有以下两个模块:

  1. grid hub 作为master节点不负责任何测试任务,只负责调度测试请求到适合的grid node节点并提供接口供grid node节点进行注册。  
  2. grid node作为真正的执行测试任务的worker节点,在启动时到grid hub上进行注册并周期性刷新自身状态。 接收grid hub的测试请求,执行成功后将测试结果返回给grid hub。 每个grid node有自己的容量, 一旦node满负荷,grid hub将不再把测试请求调度给node节点。

下面是架构图。

  1. 测试人员在jenkins上配置一定的测试策略。 或手动或周期性执行UI自动化任务
  2. 在k8s中注册的jenkins的slave节点会接收到jenkins的测试请求,然后从git中下载测试代码执行测试,讲所有测试请求发送给grid hub
  3. 部署再k8s中的grid hub接收到测试任务后,按调度策略将任务分发给grid node节点
  4. 同样部署再k8s中的多个node,在接收到测试请求后,在容器中启动浏览器,执行测试任务并回报测试结果

代码规范与常用设计模式

https://testerhome.com/topics/15540

https://testerhome.com/topics/15768

https://testerhome.com/topics/16042

git 地址:http://git.4paradigm.com/Test/UIAutomation

猜你喜欢

转载自blog.csdn.net/hualusiyu/article/details/85237498