$30 off During Our Annual Pro Sale. View Details »

PHPer のための PHPUnit と Selenium を使った
ブラウザテストのすゝめ

memory
PRO
September 21, 2019

PHPer のための PHPUnit と Selenium を使った
ブラウザテストのすゝめ

- PHP Conference Hokkaido in Japan

English Title:
Evolution for Browser Testing with the PHPUnit and the Selenium for PHP users.

memory
PRO

September 21, 2019
Tweet

More Decks by memory

Other Decks in Programming

Transcript

  1. / / PHP 2019
    PHPer PHPUnit Selenium 

    © - BASE, Inc.

    View Slide

  2. © - BASE, Inc.
    Who am I?
    (@m m r )
    BASE
    PHP, TypeScript

    View Slide

  3. © - BASE, Inc.
    PHP JVM Hello World
    builderscon tokyo
    https://speakerdeck.com/memory /php-de-jvm-woshi-zhuang-site-
    hello-world-wochu-li-surumade
    ( ) PHP JVM (Java Virtual Machine)
    PHPerKaigi
    https://speakerdeck.com/memory /phperkaigi-
    ( ) 2 Elasticsearch
    PHP 2019
    https://speakerdeck.com/memory /php-conference-sendai- -
    presentation-slides

    View Slide

  4. © - BASE, Inc.

    View Slide

  5. © - BASE, Inc.

    View Slide

  6. © - BASE, Inc.

    View Slide

  7. © - BASE, Inc.
    PHPUnit Selenium 


    View Slide

  8. © - BASE, Inc.

    View Slide

  9. © - BASE, Inc.
    Selenium

    View Slide

  10. © - BASE, Inc.
    Selenium
    Selenium

    View Slide

  11. © - BASE, Inc.

    View Slide

  12. © - BASE, Inc.
    JavaScript
    QA
    1 2

    View Slide

  13. © - BASE, Inc.

    View Slide

  14. © - BASE, Inc.
    NO

    View Slide

  15. © - BASE, Inc.
    Selenium
    E E

    View Slide

  16. © - BASE, Inc.
    Selenium

    View Slide

  17. © - BASE, Inc.
    Selenium

    View Slide

  18. © - BASE, Inc.
    Selenium
    Web
    PHP Facebook
    facebook/webdriver
    GitHub: https://github.com/facebook/php-webdriver

    View Slide

  19. © - BASE, Inc.
    Selenium

    View Slide

  20. © - BASE, Inc.
    Selenium

    (IE, Firefox, Chrome )
    JavaScript

    View Slide

  21. © - BASE, Inc.

    View Slide

  22. © - BASE, Inc.
    Selenium 


    View Slide

  23. © - BASE, Inc.
    Selenium
    JavaScript DOM

    View Slide

  24. © - BASE, Inc.
    Selenium
    reCAPTCHA
    Standalone Node
    Java

    View Slide

  25. © - BASE, Inc.

    View Slide

  26. © - BASE, Inc.
    PHPUnit
    PHP Container
    Selenium
    Standalone
    Selenium Container
    Chrome
    Facebook
    WebDriver
    Web Page
    ( ) Hub JS 

    (2)
    (3) 

    (4)
    ( ) PHPUnit 

    (5)

    View Slide

  27. © - BASE, Inc.

    View Slide

  28. © - BASE, Inc.
    Selenium

    View Slide

  29. © - BASE, Inc.
    Selenium
    Chrome Standalone Selenium

    Headless
    Docker Docker

    View Slide

  30. © - BASE, Inc.

    View Slide

  31. © - BASE, Inc.

    View Slide

  32. © - BASE, Inc.
    https://github.com/memory-agape/php-conference-
    webdriver-testing

    View Slide

  33. © - BASE, Inc.
    PHPUnit

    View Slide

  34. © - BASE, Inc.

    View Slide

  35. © - BASE, Inc.

    View Slide

  36. © - BASE, Inc.
    composer require facebook/php-webdriver
    GitHub: https://github.com/facebook/php-webdriver
    ※ Docker ্Ͱಈ͔͞ͳ͍৔߹͸ɺ Selenium ͷ Standalone ͕ผ్ඞཁͰ͢ɻ

    View Slide

  37. © - BASE, Inc.
    WebDriver

    View Slide

  38. © - BASE, Inc.
    WebDriver

    View Slide

  39. © - BASE, Inc.
    WebDriver
    Selenium Hub

    View Slide

  40. © - BASE, Inc.
    WebDriver
    Chrome

    View Slide

  41. © - BASE, Inc.
    WebDriver
    SSL

    View Slide

  42. © - BASE, Inc.
    WebDriver

    View Slide

  43. © - BASE, Inc.
    WebDriver
    Selenium JavaScript

    View Slide

  44. © - BASE, Inc.

    View Slide

  45. © - BASE, Inc.
    JavaScript DOM

    View Slide

  46. © - BASE, Inc.

    View Slide

  47. © - BASE, Inc.

    added_by_js 

    added_by_js 

    +

    View Slide

  48. © - BASE, Inc.
    added_by_js input JavaScript 


    View Slide

  49. © - BASE, Inc.

    View Slide

  50. © - BASE, Inc.
    2
    added_by_js

    View Slide

  51. © - BASE, Inc.

    View Slide

  52. © - BASE, Inc.

    View Slide

  53. © - BASE, Inc.

    View Slide

  54. © - BASE, Inc.
    DOM

    View Slide

  55. © - BASE, Inc.
    input

    View Slide

  56. © - BASE, Inc.
    Hello World!

    View Slide

  57. © - BASE, Inc.
    Submit

    View Slide

  58. © - BASE, Inc.
    Submit (onSubmit )

    View Slide

  59. © - BASE, Inc.

    View Slide

  60. © - BASE, Inc.

    View Slide

  61. © - BASE, Inc.

    View Slide

  62. © - BASE, Inc.

    View Slide

  63. © - BASE, Inc.

    View Slide

  64. © - BASE, Inc.

    View Slide

  65. © - BASE, Inc.
    DOM

    View Slide

  66. © - BASE, Inc.
    JavaScript input

    View Slide

  67. © - BASE, Inc.
    Submit

    View Slide

  68. © - BASE, Inc.
    Submit (onSubmit )

    View Slide

  69. © - BASE, Inc.

    View Slide

  70. © - BASE, Inc.

    View Slide

  71. © - BASE, Inc.

    View Slide

  72. © - BASE, Inc.

    View Slide

  73. © - BASE, Inc.
    Selenium 


    View Slide

  74. © - BASE, Inc.
    Selenium 


    View Slide

  75. © - BASE, Inc.

    View Slide

  76. © - BASE, Inc.
    1 BASE

    View Slide

  77. © - BASE, Inc.
    2

    View Slide

  78. © - BASE, Inc.
    1 2
    common.php
    common.php
    require

    View Slide

  79. © - BASE, Inc.

    View Slide

  80. © - BASE, Inc.
    common.php
    QA
    1
    PHPUnit + Selenium

    View Slide

  81. © - BASE, Inc.

    View Slide

  82. © - BASE, Inc.
    &&

    View Slide

  83. © - BASE, Inc.
    common.php 


    View Slide

  84. © - BASE, Inc.
    DEMO

    View Slide

  85. © - BASE, Inc.

    View Slide

  86. © - BASE, Inc.
    Selenium PHP PHPUnit
    Selenium
    QA Selenium

    View Slide

  87. © - BASE, Inc.
    Selenium

    View Slide

  88. © - BASE, Inc.

    View Slide

  89. © - BASE, Inc.
    THANK YOU FOR YOUR LISTENING

    View Slide