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 |
|
|
|
![]() |
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. |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 21:38 |