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

Подбор программы



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

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


Подбор программы
2014-03-04 10:32

Нужна помощь. Есть web проект на java. Какой программой можно протестировать, если ссылка статическая, при переходе на разные части программы ссылка не меняется? Selenium тут не подходит.



Не проходит авторизацию jira
2014-03-04 11:55

Добрый день уважаемые форумчане!

Помогите пожалуйста со следующей проблемой, используем в отделе ИТ для приёма и обработки заявок jira,

авторизация проходит под доменной учётной записью

одна учётная запись циклично требует проверку пользовательского id

пробовал пересоздавать учётную запись, может кто еще что нибудь посоветует?

Прикрепленные изображения

  • jira.png


Есть вопросы по Selenium? Добро пожаловать на форум!
2014-03-04 13:37

Раздел форума, посвященный инструменту Selenium недавно вышел на первое место по количеству тем, а общее количество комментариев в этом разделе буквально только что перевалило через 10 000!

Какие есть Учебники и ресурсы по Selenium, интересуется один из участников форума. Конечно, можно погуглить, но было бы хорошо собрать эту информацию в одном месте. Давайте вместо сделаем это?

Следите за новостями?

Правильно делаете! Потому что Selenium развивается очень быстро.

Blackberry объявила об официальной поддержке Selenium, теперь он включён в "штатный" комплект инструментов разработчиков для этой мобильной операционной системы.

Вышла новая версия Selenium 2.40 – в ней больше нет AndroidDriver и IPhoneDriver. Вместо них рекомендуется использовать appium, ios-driver и selendroid.

Давно хотели съездить в Индию, но не было повода? Вот он, пожалуйста! Конференция SeleniumConf 2014 состоится в сентябре в Бангалоре.

Впрочем, до конференции ещё много времени, так что можно пока сходить, например, на тренинг (даты начала тренингов 21 марта) :)

для начинающих, без программирования -- Selenium 2.0: стартовый уровень

посложнее, с программированием -- Разработка тестов на Python с использованием Selenium 2.0  и Разработка тестов на Java с использованием Selenium 2.0 (25 апреля)

для профессионалов -- Все секреты и тайны Selenium 2.0


Читать дальше

Тестирование методом свободного поиска (exploratory testing), Москва,
2014-03-04 13:42

Очный однодневный тренинг Алексея Баранцева в Москве

Скидка при регистрации до 15 марта!!!

Тестирование методом свободного поиска, или тестирование без заранее спроектированных тестов, выполняемых в точном соответствии с планом -- это, наверное, единственный подход к тестированию, который эффективно работает в условиях неопределенности:

  • когда требований нет или они часто меняются,
  • когда на ранних этапах разработки отдельные части программы уже работают, но некоторые еще не реализованы,
  • когда программа активно эволюционирует и не удается зафиксировать тесты,
  • когда тестировщик осваивает новую предметную область или новый вид тестирования,
  • когда тестировщик начинает использовать новые методы тест-дизайна, опыта применения которых у него нет,
  • когда цели следующей итерации тестирования меняются в зависимости от результатов предыдущей итерации,
  • когда все остальные подходы уже исчерпали себя, а пользователи почему-то все равно не считают наш продукт идеальным :)

Предварительное проектирование тестов -- это попытка построить тактический план тестирования, попытка декомпозировать задачу тестирования до уровня отдельных тестов.

Однако неопределенность мешает построить стабильный тактический план, поскольку в процессе его выполнения обнаруживается новая информация, приводящая к изменению планов и первоначальных оценок.

Что же делать?

Если неопределенность высока, надо отказаться от предварительного проектирования тестов и низкоуровневых планов тестирования. Это позволит сохранить гибкость, даст возможность быстро реагировать на появление новой информации и подстраиваться к изменившейся ситуации.

Надо перейти к тестированию методом свободного поиска.

А как же контроль и учет? Можно ли при этом сохранить управляемость процесса тестирования?

Подробное описание и программа тренинга


Читать дальше

Тестирование удобства использования, новый набор 14 апреля
2014-03-04 13:46

Начало 14 апреля, 4 занятия по 1,5 часа + домашняя работа и много общения с тренером.

Тренер: Наталья Руколь

Всем известна народная мудрость: «Встречают по одёжке, а провожают по функционалу». Что бы ни умел ваш продукт, им не будут пользоваться, если он недостаточно удобен и интуитивно не понятен. Возможно, его безумно полезный и жизненно необходимый функционал просто не найдут!

Но что делать? Как оценить удобство? Как его измерить? Как избежать субъективности в оценках? Как сделать продукт, который будет нравиться вашим пользователям, а не тестировщикам? Как донести до руководства необходимость внесения изменений?

Ответить на все эти вопросы далеко не так просто, как кажется. Наука человеко-машинного взаимодействия активно развивается, и если вы хотите выпускать действительно качественные продукты, которые будут радовать ваших пользователей, вы должны глубоко в ней разобраться!

О том, как правильно тестировать удобство использования, вы узнаете в этом онлайн-курсе.

Подробная программа и условия участия


Читать дальше

Не работает идентификация пользователя
2014-03-04 15:47

Задача:

    Есть TWiki страницы. В них нужно заменить слово1 на слово2. Сделать это надо на стороне клиента т.е. через web форму.

 

Проблема:

    Когда работаю без селениума в браузере, он меня помнит и, даже, если не помнит, то достаточно вести данные один раз, и тогда запоминает. При работе через селениум не хочет запоминать и на каждой странице запрашивает идентификационные данные.

 

Открываю строницу в selenium webdriver. При попытке редактировать стриницу возникает запрос на идентификацию, с которым мне не удаются работать ни через селениум ни руками (работает только <ctrl+v> <ctrl+c> и смена фокуса мышкой). Поэтому хочу открыть страницу, один раз ввести пароль руками и все страницы открывать уже будучи идентифицированным (либо научиться работать с этой формой идентификации, но как не понимаю). Но этот редиска не запоминает меня, и запрашивает идентификацию каждый раз при октрытиb новой страницы (даже в одной сессии и в одной вкладке). Как его победить?

 

 

использую selenium-2.39.0 на линуксе, работаю через firefox

 

сервера запускаю так (пытался использовать профайл не помогло. возможно что-то делаю не то):

java -jar selenium-server-standalone-2.39.0.jar -firefoxProfileTemplate /home/msedov/.mozilla/firefox/e8bw0hxb.selenium -log selenium_server.log -debug &

 

код который на сочинял на python

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import StaleElementReferenceException
import time
import pickle

browser = webdriver.Firefox()

link_list = {}
cookies_list = {}

# click edit button in the main TestGroup page
browser.get('http://server_name/twiki/bin/view/TestGroup/WebHome')
print ("Title: '"+browser.title+"'")
element_edit_button = browser.find_element_by_xpath("/html/body/div[3]/div[2]/div/div/ul/li/a/b")
#element_edit_button.click()

try:
    element_edit_button.click()
except StaleElementReferenceException:
    print ("Exception during opening")

# тут появляется идентификационная форма, с которой мне не удается работать
# ввожу данные руками, использую <ctrl+c>, <ctrl+v>

element_edit_text = browser.find_element_by_xpath('//*[@id="topic"]')
print (element_edit_text.text)

element_cancel_button = browser.find_element_by_xpath('//*[@id="cancel"]')
try:
    element_cancel_button.click()
except StaleElementReferenceException:
    print ("Exception during canceling")

дальше открываю следующую страницу и пытаюсь ее редактировать, но получаю повторный запрос на идентификацию.

Отредактировать надо большое кол-во страниц, т.е. руками это делать не вариант.

 

Что я не учитываю? Как победить этого "злого монстра"? Буду рад любой помощи.



Автоматизация flash. Adobe Genie + Webdriver + TestNG
2014-03-04 16:22

Всем привет.

 

Наверное каждый QA инженер сталкивался с проблемой автоматизации флеша. Когда я слышу эту тему, в голове возникают термины - Eggplant, Sikuli, Selenium-flash... И никакого позитива :)

Пару недель я случайно узнал о Automated UI Tester for Adobe ActionScript или если кратко - Genie. Как понятно из названия – это инструмент тестирования флеш - приложений.  Его легко установить, он бесплатный и довольно удобный. Если честно, то я не планировал писать ознакомительную статью, но я думаю, что инструмент достоин внимания.

Если вы заинтересовались тогда, пожалуйста, почитайте вот эти замечательные статьи:

Или, для отчаянных - мануал.

Там вы найдёте плюсы продукта, его установку и азы работы. Всё очень понятно и доступно.

 

Мне бы хотелось пойти чуть дальше и описать простой пример интеграции Genie с Selenium Webdriver и TestNg. Писать всё будем, конечно, на Java.

Мы прочитали мануал, статьи и теперь знаем, как запустить отдельный скрипт Genie. Но давайте представим, что мы тестируем онлайн-игру. Или несколько игр. Нам бы хотелось сначала открыть страницу с игрой, прокрутить Genie-скрипт, а потом как-то посмотреть, что флешка корректно взаимодействует со страницей. Тогда хорошо бы и Genie сервер запускать и останавливать автоматически. Да и вообще неплохо бы обернуть всё нами написанное в тесты под какими-нибудь jUnit  или TestNG.

Давайте попробуем.

 

1.                Автоматический запуск и остановка Genie сервера.

Давайте изначально условимся, что наш проект лежит по вот такому пути: C:\Projects\Java\GenieTestNG. Для запуска сервера можно пойти самым простым путём – добавить в проект командный файлик runServer.bat. Он будет запускать файл GenieSocketServer.jar, который, в свою очередь, входит в пакет файлов Genie и лежит по адресу C:\Libs\Genie\GenieServer\GenieSocketServer.jar. Потому наш командный файл будет выглядеть так:

 

cd C:\Libs\Genie\GenieServer\
start "GenieServer" java -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -jar GenieSocketServer.jar

 

Поступим точно также и с остановкой сервера. Напишем командный файлик stopServer.bat:

taskkill /FI "WINDOWTITLE eq GenieServer"

 

А теперь сделаем  методы запуска и остановки:

private void startGenieServer() {

       ExecuteBatch("cmd /c start runServer.bat");

}

      

private void stopGenieServer() {

       ExecuteBatch("cmd /c start stopServer.bat");

}

      

private void ExecuteBatch(String command){

       try {

             Runtime.getRuntime().exec(command);

       } catch (IOException e) {

             e.printStackTrace();

       }

            

}

 

2.                Запуск Genie скриптов.

Вариант запуска скриптов, предложенный в мануале, нас не вполне устраивает. Нам не нужна отдельная конфигурация запуска под каждый Genie-скрипт. Нужно чтобы мы могли запускать любой скрипт, внутри тестов, передавая путь к скрипту, как параметр. Давайте создадим класс GenieScriptsExecutor и в нём метод ExecuteScript:

 

public class GenieScriptsExecutor {

       public static void ExecuteScript(String path)  {

          try {

             String[] path_arr = new String[]{path};

             Executor.startExecution(path_arr);

          }

          catch (ClassNotFoundException e) {

             e.printStackTrace();

          }

       }

}

 

 

Я умолчал, что предварительно, нужно было добавить файл Executor.jar в Buildpath нашего проекта. Этот файлик находится среди других файлов пакета Genie: Genie-binary\Genie\GenieScripts\Executor.jar.

Вернёмся к коду. Команда выполнения скрипта будет теперь выглядеть так:

GenieScriptsExecutor.ExecuteScript("Path to GenieScript.class");

 

3.                Связка с Webdriver.

Мы уже умеем выполнять нужные нам скрипты внутри кода. Можно оборачивать их в любую нужную нам логику.  Например - в тесте нужно открыть страницу с игрой, сделать несколько действий во флешке, затем проверить, что на странице появился нужный нам элемент с локатором id=“gameEnd”. Тестовый метод будет выглядеть так:

 

public void testGame(){

       openUrl("http://testsite/gamepage/");

       GenieScriptsExecutor.ExecuteScript("C:\\Projects\\Java\\GenieTestNG\\bin\\genieScripts\\GenieScript.class");

       waitforElementPresent(By.id("gameEnd"));

       }

      

      

private void openUrl(String testUrl){

             driver.get(testUrl);

       }

      

       private void waitforElementPresent(By locator) {

             try{  

                    for (int second = 0; second<10; second++) {

                           if (driver.findElements(locator).size()>0){

                                  return ;

                           }

                    Thread.sleep(1000);

                    }     

             }

             catch (Exception e) {e.printStackTrace();}

       }            

 

4.                Связка с TestNG.

Нам остаётся совсем немного.  Обернём нашу логику в тесты под testNG.  Для этого добавим к тестовому методу аннотацию @Test:

 

       @Test

public void testGame(){

       openUrl("http://testsite/gamepage/");

       GenieScriptsExecutor.ExecuteScript("C:\\Projects\\Java\\GenieTestNG\\bin\\genieScripts\\GenieScript.class");

       waitforElementPresent (By.id("gameEnd"));

       }

 

       Запуск Genie-сервера и вебдрайвера вынесем в отдельный метод и будем запускать их перед всеми тестами. Для этого создадим метод Setup и пометим его аннотацией @BeforeTest:

 

       public WebDriver driver;

      

       @BeforeTest

       public void Setup(){

             startGenieServer();

             driver = new FirefoxDriver();

             driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

       }

      

       Остановку вебдрайвера и Genie сервера также вынесем в отдельный метод. Назовём его TearDown и пометим аннотацией @AfterTest, чтобы выполнять после прохождения всех тестов.

 

       @AfterTest

       public void TearDown(){

             stopGenieServer();

             driver.close();

             driver.quit();

       }

      

Напомню, что методы startGenieServer() и stopGenieServer() мы создали в первой части статьи.

 

На этом всё.  Пример прост, без использования каких-либо паттернов проектирования или хитростей, но я надеюсь, что так получилось доступнее.

 

Спасибо.



Help по selenium.click
2014-03-04 16:53
У меня не получается сделать так, чтобы запрос selenium.click нажал на кнопку войти... Какие я варианты не учла?
 
selenium.waitForPageToLoad("10000");
selenium.type("Item_Login","someemail@ya.ru");
selenium.type("Item_Password","123");
selenium.click("что прописать здесь?");
 
Использую Selenium-RC
Кусок картинки кода кнопки , у стрелки сама кнопка: http://screencast.com/t/8OQreAVCxJ


Помогите настроить среду для тестирования
2014-03-04 16:53

Добрый день, 

Пытаюсь настроить среду для тестирования с помощью Selenium IDE + JUnit + Eclipse (Java), но постоянно вылетает ошибка и тест не запускается.

 

Процес создания теста:

1. Записываю тест в HTML с помощью Selenium IDE.

2. Изменяю формат кода на Java / Junit4 / WebDriver.

3. Копирую код в новый проект в Eclipse.

4. Добавляю библиотеки (JRE System Library; JUnit4; selenium-server-standalone-2.40.0.jar).

5. Запускаю (выбираю Class -> Run as -> JUnit test)

 

Вот тест:

package com.example.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class Test1 {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();

@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "https://www.google.pl/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void test1() throws Exception {
}

@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}

private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}

private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}

private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}

 

Ошибка:

Description Resource Path Location Type

The value of the field Test1.baseUrl is not used Test1.java /Selenium_tests/src/com/example/tests line 14 Java Problem
The method isElementPresent(By) from the type Test1 is never used locally Test1.java /Selenium_tests/src/com/example/tests line 38 Java Problem
The method isAlertPresent() from the type Test1 is never used locally Test1.java /Selenium_tests/src/com/example/tests line 47 Java Problem
The method closeAlertAndGetItsText() from the type Test1 is never used locally Test1.java /Selenium_tests/src/com/example/tests line 56 Java Problem
The import java.util.regex.Pattern is never used Test1.java /Selenium_tests/src/com/example/tests line 3 Java Problem
The import org.hamcrest.CoreMatchers is never used Test1.java /Selenium_tests/src/com/example/tests line 7 Java Problem
The import org.openqa.selenium.support.ui.Select is never used Test1.java /Selenium_tests/src/com/example/tests line 10 Java Problem


Помогите пожалуйста разобратся с проблемой.



Видео докладов с конференции LoveQA. Первая часть
2014-03-04 21:19

Несколько недель назад, 15 февраля, компания Badoo проводила конференцию для тестировщиков LoveQA. Сегодня были выложены первые 4 доклада конференции, к пятнице представители компании обещают выложить остальные доклады.

Доклады

«Есть ли жизнь после релиза? Наш опыт тестирования мобильных приложений»
Александр z3us Хозя & Николай Козлов, Badoo.

{iframe width="560" height="315" frameborder="0" allowfullscreen}http://www.youtube.com/embed/uDcisxN1nAQ{/iframe}

Читать дальше


© 2010 | Software-Testing.Ru


В избранное