公開プロジェクト会議 - 2021年2月25日

隔週の公開プロジェクト会議シリーズを継続して…

隔週の公開プロジェクト会議シリーズを継続し、2021年2月25日午後5時30分(CET)に開催された会議のタイムラインを以下に示します。(以下の時間はISTです)

会議はSelenium Slack#selenium-tlcチャンネルで開催されます。


Diego Molina 21:54

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

Luke Hill 21:54

はい、必要であればここにいます。

Diego Molina 21:55

今日の議題は 1 つだけです。会議を短くするために、「ベータ 2 に必要なものは何か」です。他に議題があれば自由に追加/提案してください。

Luke Hill 21:59

それとともに、4.0.0 プロパーをリリースするために何が必要か(つまり、達成する必要のあるマイルストーンは何か)について、大まかなアイデアはありますか?

Diego Molina 22:01

会議を開始するのに十分な人が集まるか、数分待ちましょう。

Titus Fortner 22:04

ベータ 2 の前にやりたいことがいくつかありますが、私としては早ければ早いほど良いです :)

Simon Stewart 22:04

私は計画会議に参加していますが、ゆっくりとフォローします。

Titus Fortner 22:05

(Element#dom_attribute が主に終わらせたいものです)。Java、C# の両方ともすでにそれを持っていると思います。

Diego Molina 22:05

わかりました、それでは周りにいる人から始めましょう。今のところ議題は 1 つだけです。「ベータ 2 に必要なものは何か」

私の頭に浮かぶのは、リークの修正です :slightly_smiling_face

Simon Stewart 22:05

リークを潰してください。Grid 上の CDP が Docker インスタンスで動作することを確認してください。

Diego Molina 22:06

リークに関して、AsyncHttpClient の問題と Google グループについてもっと読んだ後…

10:07

彼らは、各 AsyncHttpClient インスタンスが独自のプールを持っていると述べています。

Diego Molina 22:07

そのため、AsyncHttpClient のインスタンスを 1 つだけ持つことを推奨しています。

Puja Jagani

潜在的な問題領域を指摘していただいた後、今日 AsyncHttpClient の単一インスタンスを使用してみましたが、やはりリークが発生しました :confused: 明日、さらに深く掘り下げてみます。何か試してほしいことがあれば教えてください。

Diego Molina

ディストリビューター全体の単一インスタンスですか?

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

単一インスタンスでのディストリビューターヒープ :see_no_evil

Diego Molina 22:08

さらに、プールのサイズを制限できます。

そのため、クライアント構成を調整して、それが役立つかどうかを確認する予定です。

10:09

悲しいことに、AsyncHttpClient のドキュメントは存在しませんが、堅牢な実装のようで、Gatling に使用されています。

10:09

(ロードテストツール)

10:10

ロード*

David Burns 22:12

@simonstewart 「Grid 上の CDP が Docker インスタンスで動作することを確認する」ために、すべてだと仮定すると、何が残っていますか?

Simon Stewart 22:12

(会議中)

Titus Fortner 22:13

各バインディングは、その部分(キャップからデバッガーアドレスを取得するなど)を実装できる必要があります。

David Burns 22:13

@titusfortner それは完了しましたか?

10:14

se:options から取得します。

Titus Fortner 22:14

彼は最初の部分をまだ終えていないと思います。

彼はそれを変更しています。

Simon Stewart 22:14

se:cdp 今、それを使用するバインディングを更新しました。

David Burns 22:14

@simonstewart が私のコードに触れた… 私の Python コードに汚い Java の人が。

Simon Stewart 22:14

「Grid 内の CDP」の機能は se:cdpVersion を追加します。

Luke Hill 22:14

Ruby で気づいた新しいことの 1 つ(全体に関連するかどうかは不明)。新しい Chrome CDP の機能は、ローカル/リモートインスタンスで動作できる必要があります。

Simon Stewart 22:14

「私の大切なもの…。」

David Burns 22:14

:stuck_out_tongue

Simon Stewart 22:15

@luke それが se:cdp 機能で許可されていることです。

Luke Hill 22:15

一歩先を行っていますね :smile

Simon Stewart 22:15

Selenium Server は CDP トラフィックを転送する方法を知っています。

Titus Fortner 22:15

ええ、Ruby コードは、サブクラス化のせいで、リモート WebDriver でブラウザ固有の機能をユーザーが利用できるようにしたことはありません。

Luke Hill 22:15

したがって、基本的にはベータ 2 で再度確認してくださいというのが答えです。

Titus Fortner 22:15

それに対処するための PR があります。

Simon Stewart 22:15

ローカルドライバーも se:cdp を設定するようにします。

Titus Fortner 22:16

その PR では、Ruby CDP コードは localhost 上にある場合にのみサーバーで動作するため、Simon が行ったことにも更新する必要があります。

Luke Hill 22:16

私たちは何をすべきかを「知って」います。それが戦いの半分です。

Titus Fortner 22:17

@p0deje がしばらく不在で、@twalpole が非常に忙しいので、帯域幅の問題だけです。:)

まあ、一部は、「だいたい」知っているだけです。

Diego Molina 22:17

@luke がコミットするチャンスです :slightly_smiling_face

Luke Hill 22:18

可能な限り協力できます。しかし、彼らの基準にはまだ達していません。

Titus Fortner 22:18

CDP バージョン用の異なる gem 公開方法も理解したいです。

10:19

Selenium メソッドから CDP メソッドよりも、ブラウザバージョンに合わせて CDP バージョンを更新できるようにすることの方が重要なので、アーティファクトを独立してリリースできるようにし、ユーザーが何らかの方法で切り替えられるようにしたいと考えています。

Luke Hill 22:19

イースターまでには、賃貸または最初の家を購入して、より安定した場所に再び住めるようになることを願っています。そのため、夕方にはもっとできるようになるはずです。これは、2 年強で 5 回目の引っ越しになります。

Titus Fortner 22:22

リーク調査にはまだどれくらいの作業が残っていますか? (すべてがどのように関わっているのかまったくわからないのでお尋ねします)

Diego Molina 22:23

わかりません、今週は投資しましたが、少なくともディストリビューターに絞り込みました。

10:24

新しいテストが実行されると時間の経過とともにメモリを消費し、決して返しません。

現在、問題が本当に AsyncHttpClient に関連しているかどうかを確認しています。

10:25

まあ、私たちの使い方にもっと関連しています。

David Burns 22:25

@diemol @Puja Jagani はこれが優先事項であることを知っているので、遠慮なく彼女を巻き込んでください :slightly_smiling_face

Diego Molina 22:26

彼らは単一インスタンスを持つことを推奨しており、ディストリビューターでは登録済みノードごとに 1 つのインスタンスがあり、ヘルスチェックを行うために 1 つのインスタンスがあり、もう 1 つはそれが何であるか特定できていません。

Simon Stewart 22:30

各インスタンスには独自の構成が必要なためです。

10:31

リクエストごとに構成を変更できれば問題ありません。

Diego Molina 22:31

ベース URL が異なりますよね?

Simon Stewart 22:31

そうです。

10:32

タイムアウトも可能性があります。

構成オブジェクトに関するものは何でも。

Diego Molina 22:33

異なるタイムアウトは見られませんでしたが、Grid でユーザーがタイムアウトを構成できるようにするときには必要になります。

Puja Jagani

RequestBuilder を使用すると、リクエストごとにタイムアウトを設定できると思います。

Diego Molina 22:34

それで、ふむ、興味深い… 今後何をすべきかよくわかりません :slightly_smiling_face

Simon Stewart 22:35

もう一度、ドメインソケット用に持っているものから始めて、netty ベースの独自の HTTP クライアントを作成することについてつぶやきます。