カリスト。SeleniumGridの代替品を思いついたのはなぜですか





(:例えばHabréは、すでに多くのセレングリッドは、単純な方法で解決できない問題があることを何度も書いている123を)。この記事では、私たちの経験を共有し、WrikeでSeleniumテストの安定したフレームワークを構築する方法を共有します。





TLDR:独自のオープンソースソリューションを作成し、SeleniumGridを完全に置き換えました。





我々はすでにしている話を、我々はGoogleクラウドエンジンとKubernetesを使用して、当社のセレンファームをスケールされたかについて。テストを開始するためのキューを削除しましたが、QA部門は、テストインフラストラクチャの不安定性に関する苦情を定期的に受け取りました。





パスの選択

Selenium Grid GKE , . GKE Preemptible VMs. , , . . , , Selenium Grid, . , .





Selenoid Aerokube, , Selenium Grid (Selenium Hub Selenium Node). , , Kubernetes, : .





, Kubernetes, Zalnium, jsonwire-grid Moon. Zalenium jsonwire-grid Selenium Node, . Zalenium . 





Moon , . : , Moon , ( ). , - — Selenium Grid, , .





, . , , .





«»?

Selenium Grid . , . Selenium , W3C Webdriver





, HTTP API ( W3C Webdriver) ( -). , Google Chrome ChromeDriver, Mozilla Firefox — geckodriver . . W3C — -.





, . , capabilities , .





2 — / . Callisto — open source , . / , Kubernetes, Nginx. .





Callisto

Callisto : Nginx, Callisto pod’ -. 





Nginx 2 :





  1. / Callisto.





  2. -.





Callisto :





  1. pod -.





  2. - .





:





  1. .





  2. pod .





Docker- Selenoid.





pod’ . - session_id, -, pod’. , — Callisto. , Callisto stateless-.





: , - , Callisto session_id -, ip- pod’, . session_id — pod_ip .





, W3C Webdriver session_id URL-, Nginx. Nginx , session_id, ip- pod’ session_id pod’ session_id.





: pod’ Callisto .





:





Callisto

Web UI. Web UI Selenoid UI





Callisto :





  • Selenium-.





  • VNC.





  • - .





.





: Selenoid UI. , .





. Callisto Prometheus: Selenium-.





Callisto, Selenoid, . . , . 





, - pod’ -. Kubernetes- , pod’.





pod’ , ~10 ( 2- , Kubernetes- ).





Callisto

Callisto — 2000 . , . , . , - .





499- Nginx. Nginx 499- . : Kubernetes- ( ) , . “Server disconnected error”.





Nginx , , , .





エラーは、Googleロードバランサー側または入力コントローラー側のいずれかで発生しました
Google Load Balancer, Ingress Controller

, worker-shutdown-timeout. 10 ( -) 120 .





: ingress-nginx 0.26.0 - 10 240 .





. Kubernetes- pod’ , session_id.





— session_id, , Nginx .





: ( GKE 1.12):





1000+ , . session_id, .





: pod’ , .





Kubernetes-API. 100 Kubernetes-API , , . , Callisto Kubernetes-API . . 





pod’ . / pod’ ~500 . 1000 .





GKE 1.12 1.14. 1.14 pod’ 10 2000 .





504- Nginx. - , Nginx 504- . , Preemptible VMs. Google VM, pod’ VM , .





Nginx ( ) : .





Callisto

, .





, , GKE 30-40% . , Callisto , pod’ , . Selenium Grid pod' , . pod' , .. Selenium Node. 





Selenium Grid Callisto:





2019-2020
2019-2020

:





  • Callisto





  • Helm chart





Callisto, . , -.





.








All Articles