自分のPCだけchrome激重でまともにテストできない
現在委託されている開発現場で、e2eの自動テストツールとしてgaugeとselenideを使用しているのですが、なぜか自分のPCだけ動作が遅く、ログイン画面開くだけで約10秒かかってしまい、まともにテストできなくなりました。。。
開発してるアプリが普通に重たいのかと思ったのですが、手元のchromeでlocalhostで開くと1秒もかからずに開けるので、明らかにselenideで開いたときだけ遅いっぽい
遅い原因
結論から言うと、自分はM1 macを使ってるのですがselenideで開いたchromeはarm64ではなくx86_64で開こうとしてCPU使用率が激高になってた模様。
なんでこんな事が起きるのか
どうやらselenideもseleniumと同様に、開こうとする言語のアーキテクチャに沿ったブラウザで開こうとするみたい。
たしかに自分は元々Intelのmacを使っていて、最近M1 macに移行アシスタントでデータをそのまま乗り換えたのですが、前のIntel時代のmac(x86_64)で動かしていたJavaをずっと使ってたみたいです。。
$ java -XshowSettings:properties -version
:
os.arch=x86_64 <= ずっとx86のJavaで動かしてたっぽい
:
対応
1. まずは既存のJavaをuninstallしてarm64用のJavaをinstallし直します。
$ java -XshowSettings:properties -version
:
os.arch=aarch64
:
2. brewで諸々インストールしてたので、homebrew自体をarm64のやつに入れ直しました。
3. brewでインストールした諸々をuninstallして、再度arm64用のbrewでinstllし直しました。自分はmavenとgauge-javaを使っていたので、この2つは入れ直しました。本当は色々入れ直したほうがいいんだけど取り急ぎ。
- gauge
- mvn
4. (mavenの場合)mvnをinstallし直したら一旦.m2をふっとばす
5. IntelliJ使ってる場合は、3でmvnを再インストールしたあとにpluginも一回uninstallして入れ直したほうが良いです。自分の場合は下記を入れ直しました
- gauge
- Kotlin
- maven helper
6.gauge-javaを入れ直す(これでようやくchromeがarm64で動くようになった)
$ gauge -v
Gauge version: 1.5.6
Plugins
-------
html-report (4.2.0)
java (0.10.3)
screenshot (0.1.0)
$ gauge uninstall java
Successfully uninstalled plugin java 0.10.2.
Successfully uninstalled plugin java 0.10.3.
Successfully uninstalled plugin java 0.9.2.
$ which gauge
/opt/homebrew/bin/gauge # arm64用のやつになってるよねの確認。/opt/homebrewなのでOKそう。ちなみにx86の場合は/usr/local/binとかになってると思います
$ gauge install java
........................
Successfully installed plugin 'java' version 0.10.3
$ gauge -v
Gauge version: 1.5.6
Plugins
-------
html-report (4.2.0)
java (0.10.3)
screenshot (0.1.0)
これでようやくサクサク動いてくれるようになりました
感想
思った以上にめちゃくちゃハマってしまいました。。。
macの移行アシスタントは便利なんですが、そのせいでIntelとarm64のものが混合してしまってるので、この辺の後処理ちゃんとやらないと無駄にハマってしまうなという教訓です。
この現象でハマっている人が一人でも救われれば幸いです。(ほとんどいないと思うけど)