Как проверить сайт на обезьянах

Я ищу способ тестировать на обезьянах веб-сайт. Что-то вроде плагина для браузера, в котором можно было бы указать временной интервал и некликающие зоны, и тогда плагин начинал кликать (и, возможно, другие действия) везде (кроме некликающих зон или DOM-элементов) в течение заданного интервала времени.

Я искал в Интернете и нашел только этот тип тестов для iPhone и Android.


person fbernardo    schedule 24.02.2012    source источник


Ответы (3)


Selenium позволяет вам искать элементы DOM на странице и имитировать щелчки или события клавиатуры, направленные на определенный элемент DOM. Это не совсем то же самое, что определить «зоны без щелчка» (которые, предположительно, будут определены в терминах координат X/Y), но, возможно, так будет даже проще.

person Alex D    schedule 24.02.2012
comment
Это быстро? Я видел, что он поддерживает запись макросов, но я хочу, чтобы на ЛЮБОЙ странице могло появиться что-то совершенно случайное. Имитирует ли он такие события, как прокрутка, наведение, щелчок правой кнопкой мыши, ввод текста? - person fbernardo; 25.02.2012
comment
Мой опыт работы с Selenium ограничен, но, судя по тому, что я видел, он работает хорошо. Вы можете выполнять поиск в дереве элементов DOM, выбирать элемент случайным образом и имитировать щелчки мышью, двойные щелчки или нажатия клавиш на нем. Я не уверен насчет правой кнопки мыши... может быть, кто-то еще знает? - person Alex D; 25.02.2012
comment
Selenium — это просто фреймворк, который позволяет создавать скрипты для взаимодействия с браузером. Случайность «Обезьяны» должна быть написана вами. Мы написали «дымовой» тест, который просто брал все ссылки на нашей странице, и, если href еще не был посещен, щелкал по ссылке, а затем продолжал рекурсивно, пока не был посещен весь сайт. Этот тест показал нам, что у нас нет неработающих ссылок, но вся эта логика была нашим собственным материалом, селен был просто инструментом, который мы использовали для взаимодействия с веб-сайтом. - person Jesse Webb; 25.02.2012
comment
JesseWebb, спасибо, что разъяснили. И да, когда я сказал, что вы можете выбрать элемент случайным образом, я имел в виду, что fbernardo должен будет написать свой собственный скрипт для выбора случайных элементов, а не Selenium сделает это за него. Знаете ли вы, может ли он имитировать правые клики? - person Alex D; 25.02.2012
comment
Спасибо, я искал что-то более простое. Думаю, я просто оберну быстрый плагин для Chrome и загружу его на github. Я оставлю вопрос открытым на несколько дней в надежде на альтернативный ответ. - person fbernardo; 25.02.2012
comment
Selenium — отличный инструмент; если вы много занимаетесь веб-разработкой, стоит потратить время на изучение. И как только вы напишете свои тестовые сценарии, вы сможете легко запускать их в разных браузерах. Но это действительно зависит от вас. - person Alex D; 25.02.2012

Я бы порекомендовал gremlins.js, «библиотеку тестирования обезьян для веб-приложений и Node.js».

https://github.com/marmelab/gremlins.js

Отказ от ответственности: мы написали это.

person François Zaninotto    schedule 07.01.2014
comment
это волшебная библиотека, но можете ли вы показать мне, как я понимаю мою ошибку mogwai (она просто показывает mowai fps ‹ 10, и я не знаю, как это исправить) - person Makio; 08.07.2014
comment
Для этой цели вам придется использовать инструменты профилирования, такие как Chrome Developer Tools. Gremlins.js просто выявляет проблемы, решать их вам. - person François Zaninotto; 14.08.2014
comment
Я искал где-то в Интернете, чтобы поблагодарить людей, которые это сделали. Это похоже на страсть, и я часами неутомимо смотрю, как мои гремлинги работают снова и снова, и мое приложение работает на 100% без ошибок. - person Ismael; 30.09.2014
comment
Выглядит красиво, хотя я не понимаю, как им пользоваться. Есть ли способ вызвать орду Гремлинов из браузера? (Я хочу протестировать веб-приложение, не вводя ничего нового в сам код, я могу взаимодействовать с ним только из клиента (браузера). Могу ли я использовать Gremlins в этом случае? - person Alexandre Dumont; 14.07.2017
comment
@FrançoisZaninotto Вы когда-нибудь писали своего собственного гремлина для тестирования функциональной части вашего веб-приложения с помощью перетаскивания? - person Artem Z.; 02.01.2019

Если вы хотите свернуть свой собственный в Python, вы можете начать с

import json
import random

import selenium

SUBDOMAIN = "your-domain.com/subdomain"
d = selenium.webdriver.Firefox()
d.get("http://" + SUBDOMAIN)

while True:
    try:
        nexturl = random.choice(d.find_elements_by_tag_name("a")).get_attribute("href")
    except selenium.common.exceptions.StaleElementReferenceException:
        pass
    except IndexError:
        d.get(random.choice(SEEN))
    if nexturl and SUBDOMAIN in nexturl and nexturl not in SEEN:
        print(nexturl)
        d.get(nexturl)
        # some test code for each page
        SEEN.append(nexturl)

Это запускает браузер, загружает URL-адрес вашего поддомена и случайным образом щелкает ссылки на странице, если они все еще ведут к поддомену. Напишите свой собственный код в цикле while для дальнейшего тестирования каждой отдельной страницы.

person serv-inc    schedule 06.04.2020