Size: a a a

QA — Автоматизация

2020 June 27

AE

Artem Eroshenko in QA — Автоматизация
AS
Спасибо. а можно ссылку ?
источник

KM

Kate Murzina in QA — Автоматизация
Все отлично!!! 😍
источник

R(

Roman (rpwheeler) in QA — Автоматизация
AS
хотел спросить по стеку авто-тестирования, у кого как организовано на работе ?
Когда-то одни мои знакомые под давлением менеджмента организовали так:
- тесты хранятся в Quality Center , страшном уродском тормознутом мастодонте.
- но редактировать их там нельзя
- специальная кнопка из Quality Center открывает кастомный редактор степов
- после редактирования по кнопке это сохранялось в QC
- где для проверки и/или дебага того что ты написал надо было собрать кастомный ран того что сохранилось
- по другой кнопке оно выгружалось на Дженкинс
- дженкинс сначала пересобирал фреймворк-хренворк из сорцов полностью
- а потом запускал прогон заданного на удалённой машине
- ещё к этому был прикручен вечно глючивший Thucydides (про который я после того проекта почти и не слышал)
- но понять что произошло часто было можно или наблюдая за удалённой машиной в риалтайме, или по консоли Дженкинса

Я прозвал эту систему "инвалидный велосипед с костылями и наручниками", и даже собственно команда разработчиков этого чудища обла иногда называла его потом "инвалидным велосипедом".
Через пару лет всеобщей ненависти это выкинули и переписали заново.

____

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

Может лучше поговорить о  том что Вы от системы хотите и что для этого в ней должно быть?
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Например, вот я:
- запуск как локальный так и на Дженкинсе (потому что где-то ты дебажишь, а где-то ночью гоняется)
- проект в Гите, а данные, если нужны, так чтобы доставались БЫСТРО-БЫСТРО (можно тоже в гите, с возможностью локального чекаута — опять таки для локальных прогонов)
- возможность прогонять любое подмножество имеющихся проверок, хоть всего лишь одну для дебага, тот же fast feedback , только для себя лично.
- минимальные интеграции, потому что видел тормозов от них больше чем пользы. Для разработки-дебага должна быть возможность запустить "вот это", а не лезть куда-то "формировать ран".
- отчётность которая работает быстро, и не занимает много места
- стабильный мастер фреймворка, в который не будет неожиданных коммитов после которых "он не запустится" +  работу разработчиков по гит-флоу, с проверками что не поломали ни себе ни другим.

Сразу скажу, что осознаю и понимаю что согласятся не все, на вкус и цвет фломастеры разные.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Barantsev 🗹
если на странице есть jQuery, можно сделать вот так
List<String> comments = (List<String>) driver.executeScript("var comments = []; jQuery('body').contents().filter(function(){ return this.nodeType === 8 }).each(function() { comments.push(this.nodeValue) }); return comments");
смотри как получается, селениум выбрасывает  Exception

org.openqa.selenium.InvalidSelectorException: invalid selector: The result of the xpath expression "/comment()" is: [object Comment]. It should be an element.
 (Session info: chrome=83.0.4103.116)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
*** Element info: {Using=xpath, value=/comment()}

at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:428)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)

А для DevTools нет никаких проблем
источник

B

Bola in QA — Автоматизация
Roman (rpwheeler)
Например, вот я:
- запуск как локальный так и на Дженкинсе (потому что где-то ты дебажишь, а где-то ночью гоняется)
- проект в Гите, а данные, если нужны, так чтобы доставались БЫСТРО-БЫСТРО (можно тоже в гите, с возможностью локального чекаута — опять таки для локальных прогонов)
- возможность прогонять любое подмножество имеющихся проверок, хоть всего лишь одну для дебага, тот же fast feedback , только для себя лично.
- минимальные интеграции, потому что видел тормозов от них больше чем пользы. Для разработки-дебага должна быть возможность запустить "вот это", а не лезть куда-то "формировать ран".
- отчётность которая работает быстро, и не занимает много места
- стабильный мастер фреймворка, в который не будет неожиданных коммитов после которых "он не запустится" +  работу разработчиков по гит-флоу, с проверками что не поломали ни себе ни другим.

Сразу скажу, что осознаю и понимаю что согласятся не все, на вкус и цвет фломастеры разные.
А где тут у вас альтернатива QC? (без учёта вашего примера выше с инвалидным велосипедом)
источник

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Vinogradov
смотри как получается, селениум выбрасывает  Exception

org.openqa.selenium.InvalidSelectorException: invalid selector: The result of the xpath expression "/comment()" is: [object Comment]. It should be an element.
 (Session info: chrome=83.0.4103.116)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
*** Element info: {Using=xpath, value=/comment()}

at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:428)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)

А для DevTools нет никаких проблем
нашел кстати Atom который это проверяет, похоже он и text() точно так же реджектит. Даже не много жалко.

Может нужно добавить что-то, позволяющее запускать произвольный XPath - ведь DOM то уже есть, XPath вполне стандартный. Типа  public Node executeXPath(String xpath); А то вроде получается, что XPath есть, но использовать можно только если возвращает Element

https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Node.html
источник

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Vinogradov
нашел кстати Atom который это проверяет, похоже он и text() точно так же реджектит. Даже не много жалко.

Может нужно добавить что-то, позволяющее запускать произвольный XPath - ведь DOM то уже есть, XPath вполне стандартный. Типа  public Node executeXPath(String xpath); А то вроде получается, что XPath есть, но использовать можно только если возвращает Element

https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Node.html
Конечно с комментом это укуренный use case, но например тексты XPath-ом считывать - почему бы и нет.
источник

AV

Alexei Vinogradov in QA — Автоматизация
источник

♪_Ω_©mm™_Ω_♪... in QA — Автоматизация
Спасибо 😉
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Bola
А где тут у вас альтернатива QC? (без учёта вашего примера выше с инвалидным велосипедом)
1) А зачем оно вообще нужно? :)
2) Неважно, если вам нужно TMS, можно взять любую TMS или обходиться вообще без неё хоть таблицами и документами по папкам.

Я Буздина на днях переслушивал.
https://www.youtube.com/watch?v=vrjN8VTeuOk

— точно то же говорит что и я не раз говорил: где-то в коде нужна какая-то айдишка по которой можно найти описание, ID в комменте перед методом достаточно.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Vinogradov
Конечно с комментом это укуренный use case, но например тексты XPath-ом считывать - почему бы и нет.
например в такой конструкции <div>один текст<span>другой текст</span> третий текст</div> довольно муторно проверять только "третий текст" или " один текст", а универсальным XPath - может быть проще. А такие конструкции встречаются довольно часто.
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Alexei Vinogradov
нашел кстати Atom который это проверяет, похоже он и text() точно так же реджектит. Даже не много жалко.

Может нужно добавить что-то, позволяющее запускать произвольный XPath - ведь DOM то уже есть, XPath вполне стандартный. Типа  public Node executeXPath(String xpath); А то вроде получается, что XPath есть, но использовать можно только если возвращает Element

https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Node.html
Не кажется ли уважаемым джентльменам что для однострочного комментария много чести? Не лучше ли получить в каком-то формате html, а отнестись к нему как к простому тексту, собрав в один стринг и найдя где там этот version банальным string.find ?
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Или, если он возвращается многострочным, ещё лучше. Можно даже богопротивной регуляркой, если формат позволяет.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Так мы как раз и выяснили, что Selenium 3 не позволяет вычитать этот комментарий или даже просто весь сорс с ним (последнее кстати тоже странно). Даже тексты выше - тоже не позволяет вычленить сами по себе.
источник

R(

Roman (rpwheeler) in QA — Автоматизация
А у меня сердце прям кровью обливается — люди текстовый формат пытаются разбирать только через селениум и никак иначе ;)
источник

BO

Boris Osipov in QA — Автоматизация
у кого-то просто много свободного времени
источник

R(

Roman (rpwheeler) in QA — Автоматизация
А если по HTTP отправить get запрос на урл этого html — в респонсе  что будет?
источник

R(

Roman (rpwheeler) in QA — Автоматизация
То есть если совсем без селениума?
источник

AV

Alexei Vinogradov in QA — Автоматизация
Roman (rpwheeler)
А у меня сердце прям кровью обливается — люди текстовый формат пытаются разбирать только через селениум и никак иначе ;)
ты неправильно меня понял. Не пытаются только через селениум, а выясняют можно ли через селениум. Эти комментарии - часть DOMа, Selenium работает с DOM, почему в общем случае он не может сделать таких операций? Вот в этом вопрос, а не как написать тоже самое на питоне.
источник