На прошлой неделе мы в очередной раз провели опрос про популярность языков программирования среди тестировщиков-автоматизаторов. И вновь, как и в прошлый раз, ожидаемо с большим отрывом победил язык Java. Но теперь Python и C# подобрались к лидеру уже ближе, проиграв не в три раза, а всего лишь в два :)
Но нельзя не признать, что инструменты разработки, создаваемые компанией Microsoft, эволюционируют семимильными шагами. Поэтому мы решили, что пришло время запустить тренинг "Программирование на C# для тестировщиков", аналогичный тренингу по языку Java.
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересует программирование на Java у нас есть другой курс).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организоваэ ь код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Первая группа нового тренинга начнет работу уже 15 августа.
Решая задачи по SQL наткнулся на одну непонятку. Решаю задачи с сайта http://sql-ex.ru/ и уперся в 28ю. Пробовал решить в разных сторон но ничего не выходило. Потом плюнул и нашел решение, чтобы понять что я не так делал.
Приводить задачу не буду, так как проще с сайта посмотреть вместе со схемой базы.
Вот найденное правильное решение:
select sum(pc.hd) / count(*) from product, pc where product.type = 'PC' and product.model = pc.model and exists(select 'x' from product p where p.maker = product.maker and p.type = 'Printer')
В решении все было понятно, кроме того, что выбирает оператор SELECT в подзапросе (пометил красным). Подскажите что значит 'x' в операторе SELECТ?
За ответы буду очень благодарен, потому как башка кипит уже =)
Прикрутил JMeter к TeamCity. Через него, запускается тест.
Тест состоит из:
TestPlan
->Threadgroup
-->TCP Sapler - запрос на сервер
--> Debug Sampler (в нем порядка 10 проверок, реализованных через BeanShell Pre Processor)
-->TCP Sapler - запрос на сервер
--> Debug Sampler (в нем порядка 10 проверок, реализованных через BeanShell Pre Processor)
-->TCP Sapler - запрос на сервер
--> Debug Sampler (в нем порядка 10 проверок, реализованных через BeanShell Pre Processor)
-->Lisner tree
Формируется xml отчет. В него по сути пишется абсолютно все. Все запросы, обработка ошибок.
Далее этот отчет конвертириуется в Ant JUnit report. И далее уже в teamcity и там разбирается и выводятся результаты для пользователя.
Threadgroup выполняется примерно 100 раз. И это все пишется в отчет.
Подскажите как можно избежать записи абсолютно всех действий, а только записать туда только окончательные результаты, т.е ok/false а выполнении ->Threadgroup.
Выполняю запрос на сервер. С сервера на запрос возвращается ответ в виде JSON. Через jp@gc - JSON Path Extractor парсю весь ответ, так чтобы все id были выбраны.
получаю переменную, которая содержит их в себе.
exmpl=[1,2,3,4,5,6,7,8,9,10,11]
Подскажите как теперь взять из этой переменной каждое значение и по очереди и запихать его в необходимый запрос.