У меня есть веб-приложение, которое нуждается в проверке функциональности и производительности, а часть набора тестов, который мы планируем использовать, уже написана на Python.Когда я впервые написал это, я использовал Mechanize в качестве средства очистки веб-страниц, но он кажется слишком громоздким для того, что я пытаюсь сделать (либо это, либо я что-то упускаю).
Основная схема того, что я пытаюсь сделать, заключается в следующем.Все объекты.
- У пользователя есть Comm (раньше был интерфейсом между моими вещами и механизацией)
- У Comm есть браузер (содержит объекты CookieJar, urllib2 и BeautifulSoup, используемые длябыть механизированным)
- Браузер имеет Форму (ы) (раньше обрабатывался механизированно)
Теперь, что касается многопоточности, у меня есть это вниз.Корректировка между работой с GIL и наличием отдельных экземпляров Python будет выполнена по мере необходимости, но предложения будут приняты.
Итак, мне нужно, чтобы пользователи потоков запускали приложение и выполняли различные действия (вход в систему).заполнять формы, отправлять формы для обработки и т. д.), не заставляя испытательный ящик кричать слишком громко.Моя текущая проблема с механизацией, похоже, связана с оперативной памятью.
Часть того, что вызывает проблему с ОЗУ, заключается в том, что каждый пользователь должен не использовать отдельные экземпляры браузера, чтобы не перезаписывать файл cookie JSESSIONID
каждый раз, когда я что-то делаю с другимuser.
Многое из этого может показаться тривиальным, но я пытаюсь запустить здесь тысячи потоков, поэтому небольшие изменения могут много значить.Любой вклад приветствуется.