Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Автоматизация временнОго тестирования приложений



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Автоматизация временнОго тестирования приложений
2017-04-19 11:07

Добрый день. коллеги!

 

Встала задача по тестированию софта в различных временных срезах. Используемый стек:

 

- сервер приложений - JBoss, JSP

- база данных - Oracle Enterprise 11.2

- логика реализована в основном на хранимых процедурах и пакетах PL/SQL

 

Необходимо автоматизировать тестирование связки БД-сервер приложений-клиент в различных временных срезах.

Было бы интересно, какие подходы/инструменты  вы используете для автоматизации подобных задач? Например,  синхронно в тесте менять время на всех системах, участвующих в тестировании?



Selenium Java + IE: The server did not provide any stacktrace informat
2017-04-19 15:18

Доброе время, друзья.

 

Решил изучить вопрос тестирования селениумом ИЕ. И... наткнулся на следующую банальную проблему, ответ на которую не однозначен.

 

Код:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.WebDriverWait;


public class Yandex {


public static void main(String[] args) 
{
System.setProperty("webdriver.ie.driver", "F:\\Projects\\Eclipse_workspace\\IEDriverServer_Win32_3.3.0\\IEDriverServer.exe");
WebDriver driver=new InternetExplorerDriver();
driver.get("http://www.yandex.ru");
//WebDriverWait wait = new WebDriverWait(driver, 10); 
driver.manage().window().maximize();
System.out.println(driver.getTitle());


}


}

Выдается ошибка:

Started InternetExplorerDriver server (32-bit)
3.3.0.0
Listening on port 11724
Only local connections are allowed
апр 19, 2017 2:28:17 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to get browser (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 14 milliseconds
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800'
System info: host: 'PC', ip: '192.168.100.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_131'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:11724/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 7cf53503-fe96-42b5-bb3a-0fd1bc6d1c29
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:661)
at org.openqa.selenium.remote.RemoteWebDriver.getTitle(RemoteWebDriver.java:329)
at Yandex.main(Yandex.java:13)

 

 

Потратил на поиски ответа уже более 2х часов. Были аналогичные вопросы и ответы: "проверь настройки безопасности ИЕ. Должно быть Медиум везде." Проверил. В одном поднял с Лоу до медиум. Другие опустил до медиума. Проблема сохранилась.
Мне вот что интересно. Если запустить ИЕвебдрайвер мануально. по слушает порт 5555. Если через Эклипс, то каждый раз разный. Если бы и этот момент пояснили, было бы крайне прекрасно.
Но а так. Подскажите, у кого какие идеи есть на тему "Unable to get browser", если он запускается, и яндекс открывается.
У меня есть мысль, что код забегает вперед, ИЕ не успевает отработать. Пытался поиграть с Вэйтом, но отсутствие знания семантики не дает развернуть эту идею дальше.
На предложение: "обнови драйвер и пр." отвечу так: всё "свежайшее" и "последнейшее".

 



PageFactory, DefaultFieldDecorator и CacheLookup
2017-04-19 17:20

Добрый день!

У меня возникла такая проблема. Я создал обёртку над шаблоном PageFactory с помощью DefaultFieldDecorator. Теперь использую свои аннотации и способы поиска элементов.

Но у меня возникла проблема с "ленивой инициализацией". Иногда мне бы хотелось закэшировать веб-элементы, свойства которых я получаю, но не знаю как. Аннотация @CacheLookup не работает после "расширения" PageFactory с помощью DefaultFieldDecorator. Да и хотелось бы не "всегда кэшировать отдельный элемент", а "на время включать кэширование, а затем (после получения нескольких свойств) отключать".

Кусок кода, где поиск происходит дважды:

webElement.clear();
webElement.click();

Переопределение делаю как-то так (сам понимаю с трудом, так как делал года три назад):

public class MyFieldDecorator extends DefaultFieldDecorator {

    public MyFieldDecorator(ElementLocatorFactory factory) {
        super(factory);
    }
public class MyElementLocator implements ElementLocator {
private final SearchContext searchContext;
private final By by;
public MyElementLocator(SearchContext searchContext, Field field) {
this.searchContext = searchContext;
MyAnnotations annotations = new MyAnnotations(field);
by = annotations.buildFirstBy();
}
public final class MyElementLocatorFactory implements ElementLocatorFactory, SearchContext {
PageFactory.initElements(new MyFieldDecorator(new MyElementLocatorFactory(driver)), webPage);

Надеюсь, что удалось объяснить, что я хочу :)



© 2010 | Software-Testing.Ru


В избранное