Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Testy automatyczne - w czym
Pyton_000
post
Post #1





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Z racji tego że zmieniam trochę swój zawód to potrzebuję info w czym teraz się pisze testy automatyczne po stronie przeglądarki. Chodzi o coś pokroju Selenium.
Jest coś ciekawszego teraz? Dodam że teraz będę siedział więcej w Pythonie niż PeHaPie (IMG:style_emoticons/default/smile.gif)

Założenie jest takie żeby takie testy odpalić i niech latają sobie cały czas gdzieś tam na jakimś środowisku. Ma to na celu wykrycie ew. awarii np. jakiegoś zew. Api zanim klienci będą płakać.

Ten post edytował Pyton_000 1.07.2017, 11:32:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Lion
post
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

Ostrzeżenie: (0%)
-----


Z ajaxem problem występuje podczas klikania i oczekiwania na odpowiedź. W Selenium mamy polecenia clickAndWait oraz click. Pierwsze z nich czeka na odpowiedź z serwera, drugie klika i przechodzi dalej, do kolejnego polecenia. Drugie bardziej nadaje się do obsługi ajaxa. Problem powstaje gdy odpowiedź ajaxowa przychodzi w losowym czasie a kolejne kroki testu od niej zależą. Można, co prawda, zastosować pause albo waitFor* ale to w aplikacji nad którą pracowałem nie dawało efektu bądź powodowało że czas pojedynczego testu wydłużał się do minut. Aplikacja działała w taki sposób, że w przypadku ISE odpowiedź i tak szła ajaxem tyle że powodowała wyrenderowanie czegoś zupełnie innego niż w przypadku pozytywnym. W tym negatywnym przypadku nie było sensu dalej czekać na timeout. Trzeba było zastosować pewne instrukcje warunkowe. Dodatkowym problemem okazały się timery ajaxowe i ogólna asynchroniczność aplikacji, należało się upewnić że odpowiedź jest odpowiedzią na którą czekamy.

Z powyższych powodów zdecydowałem się podrasowywać testy w PHP. Niestety, na chwilę obecną brakuje w Selenium IDE gotowego formattera do języka PHP do jakiegokolwiek frameworka testowego. Formatter to taki dodatek do Selenium (a właściwie do Firefoxa) który z domyślnego formatu Selenium (czyli HTML) tworzy kod w wybranym języku. Pisze się go, jak inne dodatki do FF, w JS. Formatery zainstalowane w Selenium można znaleźć w menu File > Export test case as.. Po napisaniu własnego powinien się on tam pokazać i umozliwić szybki eksport testu. Napisałem taki formater (przykłady jak to zrobić można znaleźć na GitHubie) który generuje kod PHP, klasę dziedziczącą po TestCase z PHPUnit, w której przy pomocy wcześniej wspomnianej biblioteki facebook/php-webdriver tworzone jest połączenie do serwera Selenium i wykonywane są testy. Wszystko dzieje się w środowisku headless kilku przeglądarek. PHPUnit zapewnia podstawowe asercje, można to uruchamiać z CLI tak jak inne suity PHPUnit, można podpiąć pod serwer CI, itp.
Go to the top of the page
+Quote Post

Posty w temacie
- Pyton_000   Testy automatyczne - w czym   1.07.2017, 11:30:56
- - vokiel   Możesz też użyć Chrome w trybie headless https://d...   1.07.2017, 12:11:24
- - Pyton_000   Ooo dość ciekawe. Tylko tutaj może być problem z k...   1.07.2017, 14:09:36
- - Comandeer   Jak chcesz testować w wielu przeglądarkach, to być...   1.07.2017, 19:46:20
- - nospor   A czemu poprostu nie uzyjesz selenium o ktorym wsp...   1.07.2017, 20:35:09
- - Pyton_000   @nospor nie po to zapytałem się o alternatywy Ja ...   1.07.2017, 20:48:58
- - nospor   Ja wiem ze wiesz ze jest selenium. Toz sam o nim w...   1.07.2017, 22:16:27
- - Pyton_000   No toć piszę że pytam czy jest może coś nowszego, ...   2.07.2017, 08:29:04
- - mrc   Cytatbardziej na topie Ja uważam, że jeżeli jest ...   2.07.2017, 10:00:39
- - Pyton_000   Na razie mi nic nie daje bo jeszcze w nim nie pisa...   2.07.2017, 10:45:28
- - Lion   Selenium jest fajne, chyba że masz na stronie dużo...   2.07.2017, 12:23:16
- - Pyton_000   Możesz rozwinąć myśl z Ajaxem?   2.07.2017, 13:23:33
- - Comandeer   Jeśli nie chcesz Selenium, to szukaj innych biblio...   2.07.2017, 17:58:37
- - Pyton_000   Nie to że nie chcę. Pierwotnie w nim chciałem pisa...   2.07.2017, 18:49:01
- - Comandeer   Czy ja wiem? Projekt w SF zbierze mniej hejtu...   2.07.2017, 20:17:40
- - nospor   @Lion ja mam duzo ajax u siebie i nie mam problemu...   2.07.2017, 21:04:08
- - Pyton_000   @Comandeer eeetam Efekt uboczny Hejt dla mnie ni...   3.07.2017, 07:15:00
- - Lion   Z ajaxem problem występuje podczas klikania i ocze...   3.07.2017, 16:42:10
- - Pyton_000   No to zonk. Z tego co się orientuję w aplikacji kt...   3.07.2017, 16:56:20
- - nospor   @Lion faktycznie, z tym przypadkiem AJAX co opisal...   4.07.2017, 08:45:28


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.12.2025 - 21:38