公开项目会议 - 2021 年 2 月 25 日
这是 2021 年 2 月 25 日下午 5:30(欧洲中部时间)举行的双周公开项目会议的时间线。(以下时间为 IST)
会议在 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 上 Docker 实例的 CDP 工作
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 上 Docker 实例的 CDP 工作” 还剩下什么
Simon Stewart 晚上 10:12
(正在开会)
Titus Fortner 晚上 10:13
每个绑定都需要能够实现那部分(从功能获取调试器地址等)
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 中注意到的新事物之一(不确定是否与全局相关)。新的 chrome cdp 需要能够在本地/远程实例中工作。
Simon Stewart 晚上 10:14
“我的宝贝……”
David Burns 晚上 10:14
:stuck_out_tongue
Simon Stewart 晚上 10:15
@luke 这就是 se:cdp 功能所允许的
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 方法更重要,所以我希望能够独立发布工件,并让用户以某种方式切换它。
Luke Hill 晚上 10:19
到复活节,我希望我能再次在一个更稳定的地方,要么租房,要么买我的第一个房子。所以,是的,应该能够在晚上做更多的事情。这将在两年多的时间里,我第五次搬家
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
他们建议使用单个实例,而在分发器中,我们每个注册节点都有一个实例,还有一个实例用于执行健康检查,还有另一个实例我还没有确定它是什么
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 客户端了,从我们为域套接字编写的那个开始。