パブリックプロジェクトミーティング - 2021年2月25日
隔週のパブリックプロジェクトミーティングシリーズを継続し、2021年2月25日午後5時30分(CET)に開催されたミーティングのタイムラインを以下に示します。(以下の時間はISTに基づいています)
会議は Selenium Slack の #selenium-tlc
チャンネルで開催されます。
Diego Molina 午後9:54
@titusfortner @barancev @harsha509 @luke @jimevans @simonstewart
Luke Hill 午後9:54
はい、必要であればここにいます。
Diego Molina 午後9:55
今日の議題は短くするために、「ベータ2に必要なものは何か」のみです。他の議題があれば、自由に追加/提案してください。
Luke Hill 午後9:59
それに加えて、4.0.0 の正式版をリリースするために何が必要か(つまり、達成すべきマイルストーンは何か)について、おおよその見当はついていますか?
Diego Molina 午後10:01
十分な人数が集まるまで数分待ちましょう。
Titus Fortner 午後10:04
ベータ2の前にやりたいことがいくつかありますが、早ければ早いほど助かります :)
Simon Stewart 午後10:04
企画会議中ですが、ゆっくりとフォローします。
Titus Fortner 午後10:05
(Element#dom_attribute が私が終わらせたい主なものです)。Java、C# はどちらもすでにそれを持っていると思います。
Diego Molina 午後10:05
それでは、周りにいる人たちから始めましょう。議題は今のところ1つだけです。「ベータ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
ディストリビュータ全体で単一のインスタンスですか?
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 午後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
各バインディングは、その部分(capabilitiesからデバッガーアドレスを取得するなど)を実装できる必要があります。
David Burns 午後10:13
@titusfortner それは完了していますか?
10:14
se:options から取得します。
Titus Fortner 午後10:14
彼はまだ最初の部分を終えていないと思います。
彼はそれを変更しています。
Simon Stewart 午後10:14
se:cdp 現在、それを使用するバインディングを更新しました。
David Burns 午後10:14
@simonstewart が私のコードに触れた… 汚い Java の人が私の Python コードに。
Simon Stewart 午後10:14
「Grid の CDP」の件で se:cdpVersion が追加されます。
Luke Hill 午後10:14
Ruby で気づいた新しいことの1つに、(全体に関連するかどうかはわかりませんが)新しい 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 コードは、サブクラス化のせいで、リモートWebDriverでブラウザ固有の機能をユーザーが利用できるようにしたことはありません。
Luke Hill 午後10:15
基本的に、ベータ2で再確認するのが答えです。
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
Selenium メソッドから CDP メソッドへの対応よりも、ブラウザバージョンに合わせて CDP バージョンを更新できることの方が重要なので、成果物を独立してリリースできるようにして、ユーザーが何らかの方法で切り替えられるようにしたいです。
Luke Hill 午後10:19
イースターまでには、賃貸でも購入でも、より安定した場所にまた住めるようになることを願っています。そうすれば、夜にもっとできるようになるはずです。これは2年強で5回目の引っ越しになります。
Titus Fortner 午後10:22
リーク調査にはまだどれくらいの作業が残っていますか?(何が関係しているのか全く分からないのでお聞きします)
Diego Molina 午後10:23
分かりません。今週は投資して、少なくともディストリビュータに絞り込みました。
10:24
新しいテストが実行されると時間の経過とともにメモリを消費し、決して解放しません。
問題が本当に AsyncHttpClient に関連しているかどうかを確認しています。
10:25
まあ、私たちの使用方法により関連しています。
David Burns 午後10:25
@diemol @Puja Jagani はこれが優先事項であることを知っているので、遠慮なく彼女を巻き込んでください :slightly_smiling_face
Diego Molina 午後10:26
彼らは単一インスタンスを持つことを推奨しており、ディストリビュータでは登録されたノードごとに1つのインスタンス、ヘルスチェックを行うための1つのインスタンス、そして何であるか特定できていないもう1つのインスタンスがあります。
Simon Stewart 午後10:30
各インスタンスは独自の構成が必要だからです。
10:31
リクエストごとに構成を変更できれば問題ありません。
Diego Molina 午後10:31
ベースURLが異なるんですよね?
Simon Stewart 午後10:31
そうです。
10:32
そして、おそらくタイムアウトも。
構成オブジェクトに関するもの。
Diego Molina 午後10:33
タイムアウトの違いは見られませんでしたが、Grid でユーザーがタイムアウトを構成できるようにする際には必要になります。
Puja Jagani
RequestBuilder を使用すると、リクエストごとにタイムアウトを設定できると思います。
Diego Molina 午後10:34
それで、ふむ、興味深い… さあ、どうすればいいのか分かりません :slightly_smiling_face
Simon Stewart 午後10:35
もう一度、ドメインソケット用に作成したものから始めて、netty ベースの独自の HTTP クライアントを作成することについてつぶやきます。