Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

自動テストの実行状況の調査 #4541

Closed
okazy opened this issue May 25, 2020 · 4 comments
Closed

自動テストの実行状況の調査 #4541

okazy opened this issue May 25, 2020 · 4 comments
Milestone

Comments

@okazy
Copy link
Contributor

okazy commented May 25, 2020

概要(Overview)

自動テストのfailureには「何回実行しても通らないもの」と「通ったり通らなかったりするもの」があります。
「何回実行しても通らないもの」については通るように修正をする必要があります。
「通ったり通らなかったりするもの」についても通るように修正する必要があるのですが、根治対応が難しいものもあります。

今回偶然落ちたのか、そもそも通らないのかがわからないとプルリクの受け入れの際に判断が難しいため、現状でよく落ちるテストがどれか調査をしました。

環境 (environment)

いずれも2020/05/25時点の調査である。

合計6回の調査

調査結果

1回も通らなかったテスト

  • Codeception (ubuntu-18.04, 7.3, pgsql, admin03)
1) EA07BasicinfoCest: Ea0708-uc01-t01 税率設定

#4540 で修正を確認

1) EA07BasicinfoCest: Ea0708-uc01-t01 税率設定
 Test  codeception/acceptance/EA07BasicinfoCest.php:basicinfo_税率設定
 Step  See "8%","#ex-tax_rule-1 > td.align-middle.text-right"
 Fail  Failed asserting that any element by '#ex-tax_rule-1 > td.align-middle.text-right' on page /admin/setting/shop/tax
Elements: 
+ <td> 10%
contains text '8%'

Scenario Steps:

 7. $I->see("8%","#ex-tax_rule-1 > td.align-middle.text...") at codeception/acceptance/EA07BasicinfoCest.php:224
 6. $I->see("税率設定","#page_admin_setting_shop_tax > div....") at codeception/acceptance/EA07BasicinfoCest.php:223
 5. $I->see("税率設定店舗設定",".c-pageTitle") at codeception/_support/Page/Admin/AbstractAdminPageStyleGuide.php:27
 4. $I->amOnPage("/admin/setting/shop/tax") at codeception/_support/Page/Admin/AbstractAdminPage.php:32
 3. $I->see("ホーム",".c-contentsArea .c-pageTitle > .c-pa...") at codeception/_support/AcceptanceTester.php:60
 2. $I->submitForm("#form1",{"login_id":"admin","passwo...}) at codeception/_support/AcceptanceTester.php:57

通ったり通らなかったりしたテスト

  • Plugin Update (ubuntu-18.04, 7.3, pgsql, test_install_enable_disable_update_enable_disable_remove...
1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_local (低確率でしか通らないテストのため注意)

failure: 10/11

低確率でしか通らないテストのため注意

1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_local
 Test  codeception/acceptance/EA10PluginCest.php:test_install_enable_disable_update_enable_disable_remove_local
 Step  Assert true false,"カラムがあるはず dtb_dash.new_column"
 Fail  カラムがあるはず dtb_dash.new_column
Failed asserting that false is true.

Scenario Steps:

 38. $I->assertTrue(false,"カラムがあるはず dtb_dash.new_column") at codeception/acceptance/EA10PluginCest.php:469
 37. $I->assertTrue(true,"カラムがあるはず dtb_cart.dash_id") at codeception/acceptance/EA10PluginCest.php:469
 36. $I->assertTrue(true,"カラムがあるはず dtb_cart.is_horizon") at codeception/acceptance/EA10PluginCest.php:469
 35. $I->assertTrue(true,"テーブルがあるはず dtb_dash") at codeception/acceptance/EA10PluginCest.php:452
 34. $I->see("アップデートしました。","#page_admin_store_plugin > ...") at codeception/_support/Page/Admin/PluginManagePage.php:135
 33. $I->click({"xpath":"//*[@id="page_admin_store_plug...}) at codeception/_support/Page/Admin/PluginManagePage.php:134
  • Codeception (ubuntu-18.04, 7.3, pgsql, admin02)
1) EA05CustomerCest: EA0502-UC02-T01 会員編集

failure: 1/6

1) EA05CustomerCest: EA0502-UC02-T01 会員編集
 Test  codeception/acceptance/EA05CustomerCest.php:customer_会員編集
 Step  See "ホーム",".c-contentsArea .c-pageTitle > .c-pageTitle__titles"
 Fail  Element located either by name, CSS or XPath element with '.c-contentsArea .c-pageTitle > .c-pageTitle__titles' was not found.

Scenario Steps:

 3. $I->see("ホーム",".c-contentsArea .c-pageTitle > .c-pa...") at codeception/_support/AcceptanceTester.php:60
 2. $I->submitForm("#form1",{"login_id":"admin","passwo...}) at codeception/_support/AcceptanceTester.php:57
 1. $I->amOnPage("/admin") at codeception/_support/AcceptanceTester.php:81

/home/runner/work/ec-cube/ec-cube/vendor/codeception/phpunit-wrapper/src/Constraint/WebDriver.php:36
/home/runner/work/ec-cube/ec-cube/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php:62
/home/runner/work/ec-cube/ec-cube/vendor/phpunit/phpunit/src/Framework/Assert.php:2116
/home/runner/work/ec-cube/ec-cube/vendor/codeception/codeception/src/Codeception/Util/Shared/Asserts.php:311
1) EA05CustomerCest: EA0502-UC01-T02 会員登録_必須項目未入力

failure: 1/6

1) EA05CustomerCest: EA0502-UC01-T02 会員登録_必須項目未入力
 Test  codeception/acceptance/EA05CustomerCest.php:customer_会員登録_必須項目未入力
 Step  See "ホーム",".c-contentsArea .c-pageTitle > .c-pageTitle__titles"
 Fail  Element located either by name, CSS or XPath element with '.c-contentsArea .c-pageTitle > .c-pageTitle__titles' was not found.

Scenario Steps:

 3. $I->see("ホーム",".c-contentsArea .c-pageTitle > .c-pa...") at codeception/_support/AcceptanceTester.php:60
 2. $I->submitForm("#form1",{"login_id":"admin","passwo...}) at codeception/_support/AcceptanceTester.php:57
 1. $I->amOnPage("/admin") at codeception/_support/AcceptanceTester.php:81
  • Codeception (ubuntu-18.04, 7.3, pgsql, admin03)
1) EA08SysteminfoCest: Ea0804-uc01-t02 セキュリティ管理 - ディレクトリ名変更

failure: 1/6

1) EA08SysteminfoCest: Ea0804-uc01-t02 セキュリティ管理 - ディレクトリ名変更
 Test  codeception/acceptance/EA08SysteminfoCest.php:systeminfo_セキュリティ管理ディレクトリ名
 Step  See "セキュリティ管理システム設定","#page_admin_setting_system_security .c-pageTitle__titles"
 Fail  Element located either by name, CSS or XPath element with '#page_admin_setting_system_security .c-pageTitle__titles' was not found.

Scenario Steps:

 5. $I->see("セキュリティ管理システム設定","#page_admin_setting_syste...") at codeception/acceptance/EA08SysteminfoCest.php:268
 4. $I->amOnPage("/admin/setting/system/security") at codeception/acceptance/EA08SysteminfoCest.php:267
 3. $I->see("ホーム",".c-contentsArea .c-pageTitle > .c-pa...") at codeception/_support/AcceptanceTester.php:60
 2. $I->submitForm("#form1",{"login_id":"admin","passwo...}) at codeception/_support/AcceptanceTester.php:57
 1. $I->amOnPage("/admin") at codeception/_support/AcceptanceTester.php:81
  • Codeception (ubuntu-18.04, 7.3, pgsql, installer)
1) ZZ99InstallerCest: Zz99 インストーラ 権限チェックのテスト

failure: 1/6

1) ZZ99InstallerCest: Zz99 インストーラ 権限チェックのテスト
 Test  codeception/acceptance/ZZ99InstallerCest.php:installer_CheckPermission
 Step  See "以下のファイルまたはディレクトリに書き込み権限を付与してください","#main > div > div > div.container-fluid > div > div > textarea"
 Fail  Element located either by name, CSS or XPath element with '#main > div > div > div.container-fluid > div > div > textarea' was not found.

Scenario Steps:

 25. $I->see("以下のファイルまたはディレクトリに...","#main > div > div...") at codeception/acceptance/ZZ99InstallerCest.php:64
 24. $I->reloadPage() at codeception/_support/Page/Install/InstallPage.php:40
 23. $I->see("var","#main > div > div > div.container-f...") at codeception/acceptance/ZZ99InstallerCest.php:65
 22. $I->see("以下のファイルまたはディレクトリに...","#main > div > div...") at codeception/acceptance/ZZ99InstallerCest.php:64
 21. $I->reloadPage() at codeception/_support/Page/Install/InstallPage.php:40
 20. $I->see("html","#main > div > div > div.container-...") at codeception/acceptance/ZZ99InstallerCest.php:65
  • Plugin Update (ubuntu-18.04, 7.3, pgsql, test_install_enable_update_disable_remove_local)
1) ZZ99InstallerCest: Zz99 インストーラ 権限チェックのテスト

failure: 1/6

1) ZZ99InstallerCest: Zz99 インストーラ 権限チェックのテスト
 Test  codeception/acceptance/ZZ99InstallerCest.php:installer_CheckPermission
 Step  See "以下のファイルまたはディレクトリに書き込み権限を付与してください","#main > div > div > div.container-fluid > div > div > textarea"
 Fail  Element located either by name, CSS or XPath element with '#main > div > div > div.container-fluid > div > div > textarea' was not found.

Scenario Steps:

 25. $I->see("以下のファイルまたはディレクトリに...","#main > div > div...") at codeception/acceptance/ZZ99InstallerCest.php:64
 24. $I->reloadPage() at codeception/_support/Page/Install/InstallPage.php:40
 23. $I->see("var","#main > div > div > div.container-f...") at codeception/acceptance/ZZ99InstallerCest.php:65
 22. $I->see("以下のファイルまたはディレクトリに...","#main > div > div...") at codeception/acceptance/ZZ99InstallerCest.php:64
 21. $I->reloadPage() at codeception/_support/Page/Install/InstallPage.php:40
 20. $I->see("html","#main > div > div > div.container-...") at codeception/acceptance/ZZ99InstallerCest.php:65
  • Plugin Update (ubuntu-18.04, 7.3, pgsql, test_install_enable_update_disable_remove_local)
1) EA10PluginCest: Test_install_enable_update_disable_remove_local

failure: 2/6

1) EA10PluginCest: Test_install_enable_update_disable_remove_local
 Test  codeception/acceptance/EA10PluginCest.php:test_install_enable_update_disable_remove_local
 Step  Assert true false,"カラムがあるはず dtb_dash.new_column"
 Fail  カラムがあるはず dtb_dash.new_column
Failed asserting that false is true.

Scenario Steps:

 30. $I->assertTrue(false,"カラムがあるはず dtb_dash.new_column") at codeception/acceptance/EA10PluginCest.php:469
 29. $I->assertTrue(true,"カラムがあるはず dtb_cart.dash_id") at codeception/acceptance/EA10PluginCest.php:469
 28. $I->assertTrue(true,"カラムがあるはず dtb_cart.is_horizon") at codeception/acceptance/EA10PluginCest.php:469
 27. $I->assertTrue(true,"テーブルがあるはず dtb_dash") at codeception/acceptance/EA10PluginCest.php:452
 26. $I->see("アップデートしました。","#page_admin_store_plugin > ...") at codeception/_support/Page/Admin/PluginManagePage.php:135
 25. $I->click({"xpath":"//*[@id="page_admin_store_plug...}) at codeception/_support/Page/Admin/PluginManagePage.php:134
  • Plugin Update (ubuntu-18.04, 7.3, mysql, test_install_enable_disable_update_enable_disable_remove...
1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_local

failure: 3/6

1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_local
 Test  codeception/acceptance/EA10PluginCest.php:test_install_enable_disable_update_enable_disable_remove_local
 Step  Assert true false,"カラムがあるはず dtb_dash.new_column"
 Fail  カラムがあるはず dtb_dash.new_column
Failed asserting that false is true.

Scenario Steps:

 38. $I->assertTrue(false,"カラムがあるはず dtb_dash.new_column") at codeception/acceptance/EA10PluginCest.php:469
 37. $I->assertTrue(true,"カラムがあるはず dtb_cart.dash_id") at codeception/acceptance/EA10PluginCest.php:469
 36. $I->assertTrue(true,"カラムがあるはず dtb_cart.is_horizon") at codeception/acceptance/EA10PluginCest.php:469
 35. $I->assertTrue(true,"テーブルがあるはず dtb_dash") at codeception/acceptance/EA10PluginCest.php:452
 34. $I->see("アップデートしました。","#page_admin_store_plugin > ...") at codeception/_support/Page/Admin/PluginManagePage.php:135
 33. $I->click({"xpath":"//*[@id="page_admin_store_plug...}) at codeception/_support/Page/Admin/PluginManagePage.php:134
1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_store

failure: 1/6

1) EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_store
 Test  codeception/acceptance/EA10PluginCest.php:test_install_enable_disable_update_enable_disable_remove_store
 Step  See "インストールが完了しました。",{"css":"#installModal > div > div > div.modal-body > p"}
 Fail  Failed asserting that any element by css '#installModal > div > div > div.modal-body > p' on page /admin/store/plugin/api/upgrade/1/confirm
Elements: 
+ <p> システムエラーが発生しました。
contains text 'インストールが完了しました。'

Scenario Steps:

 47. $I->see("インストールが完了しました。",{"css":"#installModal > d...}) at codeception/_support/Page/Admin/PluginStoreUpgradePage.php:41
 46. $I->waitForElementVisible({"css":"#installModal...},60) at codeception/_support/Page/Admin/PluginStoreUpgradePage.php:40
 45. $I->click({"id":"installBtn"}) at codeception/_support/Page/Admin/PluginStoreUpgradePage.php:39
 44. $I->waitForElementVisible({"id":"installBtn"}) at codeception/_support/Page/Admin/PluginStoreUpgradePage.php:38
 43. $I->click({"css":"#plugin-list > div.card-body > d...}) at codeception/_support/Page/Admin/PluginStoreUpgradePage.php:37
 42. $I->see("アップデート オーナーズストア",".c-pageTitle") at codeception/_support/Page/Admin/AbstractAdminPageStyleGuide.php:27
  • Plugin Update (ubuntu-18.04, 7.3, mysql, test_install_enable_update_disable_remove_local)
Test_install_enable_update_disable_remove_local

failure: 3/6

1) EA10PluginCest: Test_install_enable_update_disable_remove_local
 Test  codeception/acceptance/EA10PluginCest.php:test_install_enable_update_disable_remove_local
 Step  Assert true false,"カラムがあるはず dtb_dash.new_column"
 Fail  カラムがあるはず dtb_dash.new_column
Failed asserting that false is true.

Scenario Steps:

 30. $I->assertTrue(false,"カラムがあるはず dtb_dash.new_column") at codeception/acceptance/EA10PluginCest.php:469
 29. $I->assertTrue(true,"カラムがあるはず dtb_cart.dash_id") at codeception/acceptance/EA10PluginCest.php:469
 28. $I->assertTrue(true,"カラムがあるはず dtb_cart.is_horizon") at codeception/acceptance/EA10PluginCest.php:469
 27. $I->assertTrue(true,"テーブルがあるはず dtb_dash") at codeception/acceptance/EA10PluginCest.php:452
 26. $I->see("アップデートしました。","#page_admin_store_plugin > ...") at codeception/_support/Page/Admin/PluginManagePage.php:135
 25. $I->click({"xpath":"//*[@id="page_admin_store_plug...}) at codeception/_support/Page/Admin/PluginManagePage.php:134
  • Plugin extend (ubuntu-18.04, 7.3, pgsql, test_extend_same_table_disabled_remove_local)
1) EA10PluginCest: Test_extend_same_table_disabled_remove_local

failure: 1/6

1) EA10PluginCest: Test_extend_same_table_disabled_remove_local
 Test  codeception/acceptance/EA10PluginCest.php:test_extend_same_table_disabled_remove_local
 Step  See "インストールプラグイン一覧オーナーズストア",".c-pageTitle"
 Fail  Element located either by name, CSS or XPath element with '.c-pageTitle' was not found.

Scenario Steps:

 36. $I->see("インストールプラグイン一覧オーナーズストア",".c-pageTitle") at codeception/_support/Page/Admin/AbstractAdminPageStyleGuide.php:27
 35. $I->click({"css":"#upload-form > div > div > div >...}) at codeception/_support/Page/Admin/PluginLocalInstallPage.php:33
 34. $I->attachFile({"id":"plugin_l...},"plugins/Boomer...") at codeception/_support/Page/Admin/PluginLocalInstallPage.php:32
 33. $I->see("独自プラグインのアップロードオーナーズストア",".c-pageTitle") at codeception/_support/Page/Admin/AbstractAdminPageStyleGuide.php:27
 32. $I->amOnPage("/admin/store/plugin/install") at codeception/_support/Page/Admin/AbstractAdminPage.php:32
 31. $I->assertFalse(false,"無効化されている") at codeception/acceptance/EA10PluginCest.php:748
  • Plugin extend (ubuntu-18.04, 7.3, mysql, test_extend_same_table_crossed_local)
1) EA10PluginCest: Test_extend_same_table_crossed_local

failure: 2/6

1) EA10PluginCest: Test_extend_same_table_crossed_local
 Test  codeception/acceptance/EA10PluginCest.php:test_extend_same_table_crossed_local
                                                                                                                                                                                                                                                                                                      
  [Facebook\WebDriver\Exception\UnrecognizedExceptionException] invalid argument: 'text' is empty
  (Session info: chrome=81.0.4044.138)
  (Driver info: chromedriver=81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999}),platform=Linux 5.3.0-1020-azure x86_64)  
                                                                                                                                                                                                                                                                                                      

Scenario Steps:

 6. $I->attachFile({"id":"plugin_l...},"plugins/Horizo...") at codeception/_support/Page/Admin/PluginLocalInstallPage.php:32
 5. $I->see("独自プラグインのアップロードオーナーズストア",".c-pageTitle") at codeception/_support/Page/Admin/AbstractAdminPageStyleGuide.php:27
 4. $I->amOnPage("/admin/store/plugin/install") at codeception/_support/Page/Admin/AbstractAdminPage.php:32
 3. $I->see("ホーム",".c-contentsArea .c-pageTitle > .c-pa...") at codeception/_support/AcceptanceTester.php:60
 2. $I->submitForm("#form1",{"login_id":"admin","passwo...}) at codeception/_support/AcceptanceTester.php:57
 1. $I->amOnPage("/admin") at codeception/_support/AcceptanceTester.php:81
  • example

failure: 0/6

関連情報 (Ref)

5/26追記

test_install_enable_disable_update_enable_disable_remove_local についてはPHPのバージョンなど変更して追加調査をしました。
11回目のテストにて通ることがあることを確認しました。

@okazy
Copy link
Contributor Author

okazy commented May 26, 2020

PHP7.4で実行して見ましたが
EA10PluginCest: Test_install_enable_disable_update_enable_disable_remove_local
の改善は見られず

https://github.com/okazy/ec-cube/pull/21/checks?check_run_id=707778583
https://github.com/okazy/ec-cube/pull/22/checks?check_run_id=707779843

@okazy
Copy link
Contributor Author

okazy commented May 26, 2020

test_install_enable_disable_update_enable_disable_remove_local のテストはPHP, DBの組み合わせで通ることもがあることがわかりました。
https://github.com/nanasess/ec-cube/actions/runs/115271267

通ったり通らなかったりしたテストの方に移動させます。

調査協力をいただきました @nanasess さんありがとうございます。

@nanasess
Copy link
Contributor

nanasess commented Jun 11, 2020

#4564 で、エラーになっているE2Eテストのログやスクリーンショットが取得できるようになりましたので調べたところ、すべて以下のようなシステムエラーが原因になっていました。

システムエラーが発生しました。
--> - 'Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/lib/php/sessions) failed: Permission denied (13)'
--> - /home/runner/work/ec-cube/ec-cube/src/Eccube/Session/Storage/Handler/SameSiteNoneCompatSessionHandler.php

セッションハンドラが /var/lib/php/sessions を見にいってエラーになっているようです。
以下の対策が考えられます

  • /var/lib/php/sessions のパーミッションを変更する
  • session.save_path の設定を見直す
  • テスト用途なのでGCを発生させないようにする

nanasess added a commit to nanasess/ec-cube that referenced this issue Jun 12, 2020
- Symfony によって session.save_path が設定される前に GC が実行される模様
- ローカルWebサーバー起動時に session.save_path を明示的に指定
- see EC-CUBE#4541 (comment)
nanasess added a commit to nanasess/ec-cube that referenced this issue Jun 12, 2020
- Symfony によって session.save_path が設定される前に GC が実行される模様
- ローカルWebサーバー起動時に session.save_path を明示的に指定
- see EC-CUBE#4541 (comment)
nanasess added a commit to nanasess/ec-cube that referenced this issue Jun 12, 2020
- Symfony によって session.save_path が設定される前に GC が実行される模様
- ローカルWebサーバー起動時に session.save_path を明示的に指定
- see EC-CUBE#4541 (comment)
@okazy
Copy link
Contributor Author

okazy commented Jun 12, 2020

#4569 にてテストが落ちてしまう現象がほぼ解決するかと思いますので、本Issueはクローズします。

@okazy okazy closed this as completed Jun 12, 2020
@okazy okazy modified the milestones: 4.0.x, 4.0.4 Jun 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants