2012-09-11 14 views
5

Chciałbym dodać captcha, na przykład reCaptcha, do określonej funkcjonalności w mojej witrynie. Jak mogę dostosować moje testy akceptacyjne?Jak akceptować testową funkcjonalność aplikacji captcha-protected?

Czy jedynym rozwiązaniem jest wyłączenie captcha w witrynie testowej?

Wyjaśnienie:

Oczywiście nie mówię o brute-force pękanie własne captcha, ale np jakąś opcję wstrzyknięcia stanu do captcha ze strony serwera, o której mój test wie.

PS Moje kodu po stronie serwera wykorzystuje ramy piramidy, a moje testy są napisane przy użyciu selen

Odpowiedz

3

Nie chodzi o testowanie programu Captcha za pomocą testów Selenium - Dlaczego warto poświęcić znaczny wysiłek na przetestowanie narzędzia innej firmy?

Zamiast tego miałbym test Selenium, który sprawdza, czy Captcha się pojawia. To potwierdza, że ​​Captcha jest obecny i aktywny. Po tym teście wyłączę Captcha i przystąpię do innych testów walidacyjnych. Miałbym też ostatni krok, aby ponownie włączyć Captcha i powtórzyć test, który wykrył, że Captcha jest aktywny. W ten sposób upewniasz się, że czegoś nie przeoczyłeś, gdy ponownie aktywujesz Captcha.

+0

Podobało mi się to podejście lepiej niż wyłączanie captcha, ponieważ mogę polegać na testach akceptacyjnych, aby upewnić się, że captcha jest włączony. Jednak nie jestem jeszcze pewien, jak to wdrożyć. Zrestartuj i ponownie skonfiguruj aplikację pomiędzy testami? –

+0

Tak, potrzebujesz kroku między testami, aby wyłączyć Captcha. Nie jestem wystarczająco zaznajomiony z tą platformą, aby powiedzieć, czy musisz ponownie uruchomić aplikację, czy nie. Oczywiście będziesz potrzebował przeciwnej akcji włączania i ewentualnie ponownego uruchamiania, gdy kończysz testową przepustkę. –

5

Tak, jedynym rozwiązaniem jest wyłączenie Captcha - dla bardzo dobrego powodu. Jeśli łatwo jest ominąć to z Selenium, dlaczego miałbyś mieć Captcha w pierwszej kolejności?

+0

W tej chwili moja inscenizacja jest dokładną kopią produkcji. Obawiam się, że jeśli dodaję jakąś logikę, która wykrywa, czy jesteśmy na inscenizacji czy produkcji, napotykam na ryzyko. Co się stanie, jeśli atakującemu uda się sprawić, że moja strona będzie myśleć o inscenizacji? Wszystkie captcha zniknęły. –

+1

+1 za wyłączenie podczas testów selenu. Zwykle mam plik konfiguracyjny do akceptacji i plik konfiguracyjny do produkcji. W tym miejscu wstawiłabym parametr konfiguracyjny dla 'captcha = true/false' –

+1

@JaspervandenBosch Masz rację, ale jeśli atakujący to potrafi, martwienie się o wyłączenie CAPTCHA jest najmniejszym z twoich zmartwień. Logiczne i uzasadnione jest posiadanie kodu, aby wykryć, z jakiego środowiska korzystasz. – Arran

1

Wyłączyć CAPTCHA, używając kodu testowego w polu wejściowym. Jeśli captcha zawiedzie, ale pasuje do kodu testowego, kontynuuj.