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

SQA Days-24 - Программа сформирована



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

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


SQA Days-24 - Программа сформирована
2018-10-24 11:03

Уже не за горами главная конференция этой осени - SQA Days-24.

Программа конференции сформирована полностью. Уже сейчас вы можете выбрать интересующие вас доклады.

Напомним ключевых докладчиков конференции.

sqadaysspeak-sm.png

Впервые на конференции! выступят гуру тестирования Gojko Adzic, Vipul Kocher и наш специальный гость из Южной Африки Johan Steyn.

 

Конференция SQA Days-24 пройдет 23-24 ноября 2018 в Москве - ЗАРЕГИСТРИРОВАТЬСЯ

 

Обратите внимание, что очередное повышение цен 1 ноября, а по нашему промокоду s-t.ru вы можете получить дополнительную 10% скидку.

 

И еще...

 

Вечером первого дня для вас организована развлекательная программа с отличной музыкой от коллектива Rock Privet.



Инициализация и очистка тестовых данных TestNG
2018-10-24 16:34

Добрый день.

После прохождения курсов Алексея Баранцева решила попробовать свои силы в тестировании приложения, над которым я тружусь в ручном режиме.

Приложение представляет из себя CRM, одна из основных функций которой является создание клиента. 
Использую стек  Selenium+Gradle+Java+TestNG.

Я написала тест на создание клиента с использованием @DataProvider. То есть сначала я генерирую данные в формате json, далее я читаю этот файл и передаю в качестве параметра тесту. И всё работает отлично. Но задача на данный момент такая, что нужно перед каждым запуском теста генерировать новый набор данных, прежде очищая старый набор, чтобы каждый раз был новый набор данных. 

Подскажите пожалуйста как это организовать?

 

Тестовый класс:

public class CustomerCreateTest extends TestBase{


  @DataProvider
  public Iterator<Object[]> dataCustomersFromJson() throws IOException {
    try (BufferedReader reader = new BufferedReader(new FileReader(new File("src/test/resources/customers.json")))) {
      String json = "";
      String line = reader.readLine();
      while (line != null) {
        json += line;
        line = reader.readLine();
      }
      Gson gson = new Gson();
      List<CustomerData> customers = gson.fromJson(json, new TypeToken<List<CustomerData>>() {}.getType()); // List<RepositoryData>.class
      return customers.stream().map((g) -> new Object[]{g}).collect(Collectors.toList()).iterator();
    }
  }

  @Test (dataProvider = "dataCustomersFromJson")
  public void createCustomerValidData(CustomerData customer) throws InterruptedException {
     app.goTo().customerListPage();
     app.customer().create(customer);
     Thread.sleep(20000);
     Boolean curdCustomerPage = app.customer().isTextPresent("Успешно сохранен");
     assertTrue(curdCustomerPage);
     Thread.sleep(15000);
  }
}

Класс по генерации тестовых данных:

public class CustomerDataGenerator {

  @Parameter(names = "-c", description = "Repository count")
  public int count;

  @Parameter(names = "-f", description = "Target file")
  public String file;

  @Parameter(names = "-d", description = "Data format")
  public String format;


  public static void main(String[] args) throws IOException {

    CustomerDataGenerator generator = new CustomerDataGenerator();
    JCommander jCommander = new JCommander(generator);
    try {
      jCommander.parse(args);
    } catch (ParameterException ex) {
      jCommander.usage();
      return;
    }
    generator.run();

  }

  public void run() throws IOException {
    List<CustomerData> customers = generateCustomer(count);
    if (format.equals("csv")) {
      saveAsCsv(customers, new File(file));
    } else if (format.equals("xml")) {
      saveAsXml(customers, new File(file));
    } else if (format.equals("json")) {
      saveAsJson(customers, new File(file));
    } else {
      System.out.println("Unrecognized format " + format);
    }
  }

  private void saveAsJson(List<CustomerData> customers, File file) throws IOException {
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    String json = gson.toJson(customers);
    try (Writer writer = new FileWriter(file)) {
      writer.write(json);
    }
  }

  private void saveAsXml(List<CustomerData> customers, File file) throws IOException {
    XStream xstream = new XStream();
    xstream.processAnnotations(CustomerData.class);

    String xml = xstream.toXML(customers);
    try (Writer writer = new FileWriter(file)) {
      writer.write(xml);
    }
  }

  private void saveAsCsv(List<CustomerData> customers, File file) throws IOException {
    System.out.println(new File(".").getAbsolutePath()); // узнает относительный путь к файлу
    try (Writer writer = new FileWriter(file)) {
      for (CustomerData customer : customers) {
        writer.write(String.format("%s;%s\n", customer.getFirstname(), customer.getLastname(), customer.getDateOfBirth(), customer.getBurthCountry(), customer.getPlaceOfBirth(), customer.getSex(), customer.getEmail(), customer.getPhone(), customer.getPassportNumber()));
      }
    }
  }

  private static List<CustomerData> generateCustomer(int count) {
    List<CustomerData> customers = new ArrayList<CustomerData>();
    for (int i = 0; i < count; i++) {
      customers.add(new CustomerData().withTypeCustomer("Контрагент")
      .withFirstname(String.format("Ирина", i))
      .withLastname(String.format("Охотина", i))
      .withDateOfBirth(String.format("1984-06-2%s", i))
      .withBurthCountry(String.format("Российская Федерация", i))
      .withPlaceOfBirth(String.format("Казань", i))
      .withSex("Женский")
      .withEmail(java.util.UUID.randomUUID().toString() + "@gmail.com")
      .withPhone(String.format("234567%s", i))
      .withPassportNumber(String.format("1234567%s", i))
      .withPassportDateIssue(String.format("2015-06-1%s", i))
      .withPassportIssueBy(String.format("OVD%s", i))
      .withPassportDepartmentCode("136")
      .withSnils("136-001")
      .withInnCountry("Российская Федерация")
      .withInnSourceType("Отсутствует ИНН")
      .withInn("123456789")
      .withRegistrationCountry("Российская Федерация")
      .withCitizenshipAddress("РФ, г. Казань, ул. Мира, д.14")
      .withPass(String.format("QWEasd123", i))
      .withIdentityDocument(String.format("/home/irina_okhotina/Документы/Projects/java_pft/backoffice/src/test/resources/Doc%s.jpg", i+1))
      .withDocumentConfirming(String.format("/home/irina_okhotina/Документы/Projects/java_pft/backoffice/src/test/resources/Doc%s.jpg", i+1))
      );
    }
    return customers;
  }
}



Просят дать эстимейт функционалу
2018-10-24 20:09

Всем привет!

 

 

 

Поделитесь пожалуйста опытом.

 

На собесе попросили дать эстимейт функционалу:

 

1. проверить, что для логина дано 5 попыток, после 3-1 попытки появляется варнинг месседж, что осталось 2 попытки, после 4, что осталось 1 попытка.

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

 

 

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

 

 

Дорогие коллеги, поделитесь опытом, ибо я не знаю.



© 2010 | Software-Testing.Ru


В избранное