公開專案會議 - 2021年2月25日

延續每兩週一次的公開專案會議系列,以下是於歐洲中部時間下午 5:30,2021年2月25日舉行的會議時間軸。(以下時間為印度標準時間)

會議在 Selenium Slack 的 #selenium-tlc 頻道中舉行。


Diego Molina 晚上9:54

@titusfortner @barancev @harsha509 @luke @jimevans @simonstewart

Luke Hill 晚上9:54

是的,如果需要我隨時在線。

Diego Molina 晚上9:55

今天我只有一個主題,為了讓會議簡短,就是:「beta 2 需要什麼」歡迎隨時新增/提出任何其他主題

Luke Hill 晚上9:59

除此之外,我們對於要達成哪些里程碑才能發布正式的 4.0.0 版本,有初步的想法嗎?

Diego Molina 晚上10:01

我們等幾分鐘,看看是否有足夠的人可以開始會議

Titus Fortner 晚上10:04

我有幾個小問題想在 beta2 之前處理,但對我來說是越快越好 :)

Simon Stewart 晚上10:04

我正在參加一個規劃會議,但我會慢慢跟進

Titus Fortner 晚上10:05

(Element#dom_attribute 是我主要想完成的項目)。我想 Java、C# 都已經有了

Diego Molina 晚上10:05

好,那我們就從在場的人開始吧。目前只有一個主題:「beta 2 需要什麼」

我想到的:修復洩漏問題 :slightly_smiling_face

Simon Stewart 晚上10:05

徹底解決洩漏問題。確保 Grid 上的 CDP 連接到 Docker 實例可以運作

Diego Molina 晚上10:06

關於洩漏問題,在閱讀更多關於 AsyncHttpClient 的問題以及他們的 Google 群組後…

10:07

他們提到每個 AsyncHttpClient 實例都有自己的池

Diego Molina 晚上10:07

這就是為什麼他們建議只使用一個實例

Puja Jagani

在您指出潛在問題區域後,我今天嘗試使用單一 AsyncHttpClient 實例,但仍然看到洩漏 :confused: 明天我會嘗試更深入地挖掘。如果您希望我嘗試任何特定的東西,請告訴我。

Diego Molina

整個 distributor 的單一實例?

Puja Jagani

單一實例就像我們之前那樣,類似於 https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-alpha-7/java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java#L41 java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java:41 private static final AsyncHttpClient httpClient = https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | GitHub 新增

Puja Jagani

這只是為了縮小問題範圍。我想排除是否是創建新實例的問題,還是我們處理回應的方式(您之前提到的阻塞位)

Puja Jagani

Distributor 堆積與單一實例 :see_no_evil

Diego Molina 晚上10:08

此外,您可以限制池的大小

所以我計劃調整客戶端配置,看看是否有幫助

10:09

可惜的是,AsyncHttpClient 的文件不存在,但它似乎是一個穩健的實作,用於 Gatling

10:09

(一個負載測試工具)

10:10

負載*

David Burns 晚上10:12

@simonstewart 假設一切都完成了,要「確保 Grid 上的 CDP 連接到 Docker 實例可以運作」還剩下什麼?

Simon Stewart 晚上10:12

(會議中)

Titus Fortner 晚上10:13

每個 binding 都需要能夠實作那部分(從 capabilities 取得 debugger 位址等等)

David Burns 晚上10:13

@titusfortner 完成了嗎?它從 se:options 取得

10:14

它從 se:options 取得

Titus Fortner 晚上10:14

我不認為他第一部分完成了

他正在修改那個

Simon Stewart 晚上10:14

se:cdp 現在我更新了使用它的 bindings

David Burns 晚上10:14

@simonstewart 動了我的程式碼… 骯髒的 Java 人碰了我的 Python 程式碼

Simon Stewart 晚上10:14

「Grid 中的 CDP」功能將新增 se:cdpVersion

Luke Hill 晚上10:14

我在 Ruby 中注意到一個新東西(不確定是否與整個項目相關)。新的 Chrome CDP 功能需要能夠在本地/遠端實例中運作。

Simon Stewart 晚上10:14

「我的寶貝…。」

David Burns 晚上10:14

:stuck_out_tongue:

Simon Stewart 晚上10:15

@luke 那就是 se:cdp capability 允許的功能

Luke Hill 晚上10:15

你領先我一步 :smile

Simon Stewart 晚上10:15

Selenium Server 知道如何轉發 CDP 流量

Titus Fortner 晚上10:15

是的,由於子類別化的緣故,Ruby 程式碼實際上從未允許使用者受益於 Remote WebDriver 中瀏覽器特定的功能

Luke Hill 晚上10:15

所以基本上答案是 beta2 再回來查看。

Titus Fortner 晚上10:15

我有一個 PR 來解決這個問題

Simon Stewart 晚上10:15

我將使本地驅動程式也設定 se:cdp

Titus Fortner 晚上10:16

有了那個 PR,Ruby CDP 程式碼只有在伺服器位於 localhost 時才能運作,所以我們也必須更新 Simon 所做的

Luke Hill 晚上10:16

我們「知道」我們需要做什麼。這已經成功一半了。

Titus Fortner 晚上10:17

由於 @p0deje 離開了一段時間,而 @twalpole 又超級忙碌,這只是頻寬的問題。 :)

嗯,部分是這樣,我只知道「大概」

Diego Molina 晚上10:17

這是 @luke 提交程式碼的機會 :slightly_smiling_face

Luke Hill 晚上10:18

我可以盡可能提供幫助。但我還沒有達到他們的標準。

Titus Fortner 晚上10:18

我也想弄清楚如何為 CDP 版本做不同的 gem 發布

10:19

能夠更新 CDP 版本以匹配瀏覽器版本比 Selenium 方法到 CDP 方法更重要,所以我希望能夠獨立發布 artifacts,並讓使用者以某種方式切換它。

Luke Hill 晚上10:19

到復活節時,我希望能夠再次住在更穩定的地方,無論是租房還是買我的第一個房子。所以應該可以在晚上做更多的事情。這將是我在兩年多一點的時間裡第五次搬家

Titus Fortner 晚上10:22

洩漏調查還有多少工作要做?(我問是因為我真的不知道涉及哪些方面)

Diego Molina 晚上10:23

不確定,我這週投入了時間,至少我已經將問題鎖定在 Distributor

10:24

它會在執行新測試時隨著時間推移吃掉記憶體,而且永遠不會歸還

我現在正在檢查問題是否真的與 AsyncHttpClient 有關

10:25

嗯,更確切地說是與我們使用它的方式有關

David Burns 晚上10:25

@diemol @Puja Jagani 知道這是優先事項,所以隨時可以拉她進來 :slightly_smiling_face

Diego Molina 晚上10:26

他們建議使用單一實例,而在 Distributor 中,我們每個註冊節點都有一個實例,還有一個實例用於執行健康檢查,以及另一個我還沒能確定是什麼的實例

Simon Stewart 晚上10:30

因為每個實例都需要自己的配置

10:31

如果我們可以根據每個請求更改配置,那就沒問題了

Diego Molina 晚上10:31

他們有不同的 base URL,對吧?

Simon Stewart 晚上10:31

10:32

還有可能的超時

config 物件上的任何東西

Diego Molina 晚上10:33

我沒有看到不同的超時,但當我們允許使用者在 Grid 中配置超時時,我們將需要它們

Puja Jagani

我認為 RequestBuilder 允許為每個請求設定超時。

Diego Molina 晚上10:34

所以,嗯,有趣… 現在不確定該怎麼辦 :slightly_smiling_face

Simon Stewart 晚上10:35

我要再次嘟囔關於基於 Netty 撰寫我們自己的 HTTP 客戶端,從我們用於 domain socket 的那個開始