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

Тестирование документации - больше, чем документация



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

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


Тестирование документации – больше, чем документация
2019-06-25 10:08

Автор: Виктор Славчев (Viktor Slavchev)
Оригинал статьиhttps://mrslavchev.com/2018/11/26/hindsight-lessons-about-exploration-testing-documentation-think-outside-the-dox/
Перевод: Ольга Алифанова

 

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

Зачастую, когда я спрашиваю студентов, как бы они тестировали приложение, я получаю ответы вроде "Я сравню продукт с документацией или спецификацией". Логичным образом я задаю следующий вопрос – что, если спецификации нет, или продукт еще не создан?

 

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

 

Читать статью полностью...



Автоматизация Selenide + TestNG
2019-06-25 10:27

Здравствуйте. 
Возникла проблема с которой я не могу пока разобраться.
Сам я занялся автоматизацией совсем недавно и очень многого еще не знаю.
У меня есть тесты на java. Запускаю я их используя IDE IntelliJ.

Процесс запуска выглядит так - я открываю файл xml с описанием <suite> <test> <class>. Перед запуском указываю параметры в конфигурации -Dproject=inknowledge -Dselenide.browser=chrome
Ну и поехали.
Все работает все здорово.

Сейчас я пишу свои тесты. Если я запускаю их непосредственно вызывая класс, то все норм. Если я пытаюсь использовать вышеописанный метод, то возникают проблемы...

Суть проблемы такая:
Если я в xml указываю <suite name="Main Test Suite" parallel="methods" thread-count="3"  verbose="1" > и пытаюсь запустить тесты, то у меня возникает ошибка:
java.lang.IllegalStateException: No webdriver is bound to current thread: 14. You need to call open(url) first.

Если я указываю в xml <suite name="Main Test Suite" verbose="1" > то тесты проходят без ошибок.

Я так понимаю что проблема кроется где-то в xml

Гугление пока ни к чему не привело

Возможно кто-то сталкивался с подобным и может мне подсказать что я делаю не так?



Winium Desktop Driver не находит окно
2019-06-25 12:03

Всем привет!

 

Написал тест для проверки появления окна при определенных действиях. Ищу окно по параметру className. Вот мой код для проверки существования окна

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

import java.awt.*;
import java.awt.event.KeyEvent;

public class MainPage {

HelperClass hclass = new HelperClass();

private Screen screen;
private WebDriver driver;
private By iconAdditionalClientTreeBy = By.name("Поиск контакта");
private By treeBy = By.name("Шеврон уведомления");
private By mainWindowBy = By.className("TfrmMain"); //Вот этот className
private Pattern imgIconClientTreeBy = hclass.newPattern("tree.JPG");
private Pattern imgMainWindowMenu = hclass.newPattern("mainWindowMenu.jpg");
private Pattern imgExitButton = hclass.newPattern("exit.jpg");
private Robot robot;


public MainPage(Screen screen, WebDriver driver){
this.screen = screen;
this.driver = driver;
}

//Проверяем, есть ли дополнительная иконка клиента
public boolean checkIconAdditionalClientTree(){
try{
new WebDriverWait(driver, 60).until(ExpectedConditions.presenceOfElementLocated(iconAdditionalClientTreeBy));
return true;
}catch (NoSuchElementException e){
return false;
}
}


public void callMainWindowHotButtons() throws AWTException {
robot = new Robot();
if(checkIconAdditionalClientTree()){
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_F1);
}
}

public void callMainWindowIconTree(String login) throws FindFailed {
if(checkIconAdditionalClientTree()){
screen.click(imgIconClientTreeBy);
driver.findElement(By.name("[" + login + "] - В сети")).click();
}

}

//Здесь проверяем, что элемент mainWindowBy существует
public boolean checkMainWindow(){
try{
driver.findElement(mainWindowBy);
return true;
}catch(NoSuchElementException e){
return false;
}
}

public void clickExitButton() throws FindFailed {
screen.click(imgMainWindowMenu);
screen.click(imgExitButton);
}

}

 Вот тест для проверки окна

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class MainPageTest {

private Process shell;
private WebDriver driver;
private Screen screen;
private String profile = System.getProperty("user.home") + "\\AppData\\Roaming\\IT-Phone\\Profiles";;
private boolean windowMain;
private String login;
private String password;
private String server;

@Before
public void setUp() throws IOException {
StartTest start = new StartTest();
shell = start.RunWinum();
start.deleteFolderProfile(new File(profile));
driver = new RemoteWebDriver(new URL("http://localhost:9999"), start.startClient());
screen = new Screen();
}

@Test
public void testCallMainWindowIconTree() throws FindFailed {
MainPage mainPage = new MainPage(screen, driver);
LoginPage loginPage = new LoginPage(screen, driver);
login = "2001";
password = "o0cJ2uas";
server = "172.22.50.100";
loginPage.enterDataFields(login, password, server);
loginPage.clickEnterButton();
mainPage.checkIconAdditionalClientTree();
mainPage.callMainWindowIconTree(login);
windowMain = mainPage.checkMainWindow();
mainPage.clickExitButton();
System.out.println(windowMain);
Assert.assertTrue(windowMain);
}

@After
public void tearDown(){
shell.destroy();
}
}

Тест выдаёт результат false, хотя вижу, что окно появляется 

 

 

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

  • classname.jpg
  • test_result.jpg


Параллельно два и более запросов в луппе
2019-06-25 13:05

Всем привет! при создании тест-плана возник такой вопрос как в один сред запихнуть два или более loop controller, что работали параллельно?

Берется список юзеров с CSV, создается сессия и потом в одном луппе каждые 5 сек отсылается команда на синк, а во втором - какой-то post запрос и т.д. 

 

Или возможно какое-то другое решение ?



чтение файла
2019-06-25 18:20
добрый день. помогите грамотно сделать проверки. ситуация следуйщая:
запускаю плагин в аппликации, он обращается к внешнему ip, работает в среднем от 2 до 5 минут. таких плагинов около 100. в это время в манагере удаленного управления бежит лог со всеми ошибками или инфо. задача состоит в том, чтоб автоматизировать  этот процесс , поймать все ошибки, прочитать  и  вывести их  в отчет. подсажите как реализовать наилучшим способом это всё?
 
  


Старший специалист по тестированию (ручное тестирование)
2019-06-26 09:13

Ищу Старшего специалиста по ручному тестированию в штат банка. Обязанности - функциональное, интеграционное, регрессионное тестирование CRM-системы банка.

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

Оформление в штат, заработная плата по результатам собеседования (120-200 до вычета налогов).

Вся подробная информация по запросу по почте o.belyaeva@ancor.ru или в телеграме @belyaevaANCOR



© 2010 | Software-Testing.Ru


В избранное