Перейти к содержимому

Публикации MissLeman

106 публикаций создано MissLeman (учитываются публикации только с 29 июня 2023)



#169521 Автоматизаторы на топовые банковские проекты

Отправлено автор: MissLeman 16 ноября 2018 - 14:58 в Работа/Москва

К тому уровню соискателей, что вы хотите, можно бы и на "вы" обратиться.

 

(мне не актуально я мимокрокодил).




#168771 [Protractor] Условие по isPresent() в цикле

Отправлено автор: MissLeman 03 октября 2018 - 16:31 в Selenium - Functional Testing

Привет, 

 

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

 

//действия по получению массивов allСontrolsToEnable и allControlsToCheck 
//до этого места все работает правильно - массивы содержат нужные элементы 

let elementsToEnable = [];
let elementsToWait = [];

for (let counter = 0; counter < allControlsToCheck.length; counter++){
          controlsOnAC[counter].isPresent().then(function (result) {

                  if (!result) {
                            elementsToEnable.push(allСontrolsToEnable[counter]);
                            elementsToWait.push(allControlsToCheck[counter]);
                            console.log("element in elementsToEnable " + counter + " " + elementsToEnable[counter].locator().toString());
                            console.log("element in elementsToWait " + counter + " " + elementsToWait[counter].locator().toString());
                  }
           });
} 

//some actions
console.log("HERE SHOULD BE FULL ARRAY LENGTH = " + elementsToEnable.length);
console.log("HERE SHOULD BE FULL ARRAY LENGTH = " + elementsToWait.length)

 

После этой функции там происходят примерно такие действия: нажать на UI кнопочку, в открывшейся панельке прокликать элементы из массива elementsToEnable, дождавшись появления на UI элементов из elementsToWait, закрыть панельку. 

 

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

 

Подскажите, пожалуйста, как написать правильно, у меня видимо какой-то пробел насчет промисов здесь :( 




#168776 [Protractor] Условие по isPresent() в цикле

Отправлено автор: MissLeman 04 октября 2018 - 08:43 в Selenium - Functional Testing

не дает отредактировать тему  :rtfm: я упростила немного код, чтобы он лучше читался вне контекста, в условии промиса опечатка, должно быть 

allControlsToCheck[counter].isPresent().then(function (result) {



#168889 [Protractor] Условие по isPresent() в цикле

Отправлено автор: MissLeman 10 октября 2018 - 12:44 в Selenium - Functional Testing

Я бы прошла дебаггером прямо по шагам.

 

1. Так и задумано, что из изначального массива элементы при !result кладутся сразу в оба списка (и тот, что содержит элементы, которые уже есть, и в тот, где элементы, которые надо подождать)?

2. У Вас изначально два массива, перебор идет по длине allControlsToCheck, условие также по allControlsToCheck, а элементы добавляете в т.ч. из allСontrolsToEnable. Почему если allControlsToCheck[x] присутствует, то запомнить надо не только этот элемент, но и allСontrolsToEnable[x], хотя это скорее всего совершенно разные элементы? Какая тут связь?

Спасибо за ответ!

 

Я пока что решила проблему иначе (перестроила алгоритм так, чтобы обойтись без IsPrersent(), не слишком красиво, но в принципе работает).

 

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

По поводу моей функции - это для включения в гриде отсутствующих колонок (кастомизация, ну вот в джире на выводе результатов запроса такое есть, если мне память не изменяет). Т.е. открой панель настройки, прощелкай элементы, которые надо включить (в массиве ElementsToEnable), и дождись, чтобы они появились на гриде (ElementsToWait), после этого переходи к следующим действиям в тесте.

 

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




#171953 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 25 апреля 2019 - 13:31 в Selenium - Functional Testing

Здравствуйте. Автотесты UI на протракторе.

 

Кейс: наше приложение генерирует формочку (iframe), код пользователи могут скопировать и вставить на свой сайт.

 

Хочу автотест, который получал бы от приложения html этой формочки, вставлял на какую-то базовую страницу, заходил на нее и проверял, что форма работает.

 

Вопрос: вот получила я от приложения свой iframe, смастерила строку с какой-то базовой страничкой, типа такой:

<html>
    <head>
        <title>Embedded Form</title>
    </head>
    <body>
        <iframe src="..." width="600" height="600"></iframe>
    </body>
</html>

Как дальше заставить Трактор открыть этот html в браузере и проделать какие-то действия с формой, которая окажется на получившейся странице (отправить данные и т.п.)?




#171969 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 26 апреля 2019 - 10:34 в Selenium - Functional Testing

Сохранить во временную папку и открыть как URI "file:///..."?

Богомерзкий трактор так не умеет :( у него там прошито, что открывается только урл как data, можно поменять на файл, но только для всех спек сразу, в onPrepare, а мне ведь это надо сделать вообще в середине одного теста.

 

 

а что говорят программисты? может это должно покрываться компонентным юнит-тестом?

Я хочу сделать это трактором через UI.




#172058 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 03 мая 2019 - 19:29 в Selenium - Functional Testing

Вау, спасибо вам огромное. У меня тоже взлетело.




#171995 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 29 апреля 2019 - 09:30 в Selenium - Functional Testing

 

 

 

Я хочу сделать это трактором через UI.

есть такое понятие как пирамида тестов, и для фич надо создавать тесты на нужном уровне, обычно максимально низком. 

 

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

 

 

О Боже, ну вот хочется мне монстра, хотя бы даже just for my education. Если каждый вопрос на форуме будет сопровождаться простыней почему мы делаем вот так внешне не логично, во что превратится форум? (уже)




#169144 Пройди тест на знание Git

Отправлено автор: MissLeman 26 октября 2018 - 11:10 в Инструменты и технологии

Это у вас тест знания гит или тест навыков тестирования? :)

 

http://prntscr.com/lapicv




#167567 Как свернуть панель или кликнуть в верхнюю часть элемента (Java)

Отправлено автор: MissLeman 03 августа 2018 - 10:27 в Selenium - Functional Testing

А в чем проблема написать отдельный локатор для синей полоски?

 

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

Как я понимаю вот сюда вам надо https://seleniumhq.g...ionBuilder.html




#168353 Преимущество XPath. Вопрос. Дискас

Отправлено автор: MissLeman 08 сентября 2018 - 15:55 в Selenium - Functional Testing

кстате протрактор например свои локаторы имеет: по модели и биндингу. правда, они помогут лишь в том случае, если протрактор юзается строго по назначению ))

 

а у xpath вот да, яркое преимущество, что можно искать внутри чего-то (".//div...") Если этого не надо, то css быстрее, вроде. Так считается )




#168341 Преимущество XPath. Вопрос. Дискас

Отправлено автор: MissLeman 07 сентября 2018 - 14:22 в Selenium - Functional Testing

Это надо как-то разработчиков фронта трестируемой системы заставить id элементам лепить, с которыми может взаимодействовать пользователь.

Просто если этих id нет, тогда и приходят на помощь xpath и css

Just for my education, а что, можно, к примеру, в данном форуме добавить заранее известные айдишники элементам, которые содержат ссылку на профиль комментатора в теме? (скажем, мой ник в этом сообщении)?




#167140 Подскажите как кликнуть Radio button

Отправлено автор: MissLeman 12 июля 2018 - 17:43 в Selenium - Functional Testing

а что именно не получается?




#167178 Подскажите как кликнуть Radio button

Отправлено автор: MissLeman 13 июля 2018 - 13:19 в Selenium - Functional Testing

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

 

вот так вроде должно работать, допустим, в xpath можно складывать любой атрибут, не обязательно класс.

//a[@data-price-tab="retail"]

в помощь

 

https://www.guru99.c...h-selenium.html

https://chrome.googl...lfhmkeplbhddipe




#167827 Ожидание обновления данных в таблице Selenium

Отправлено автор: MissLeman 17 августа 2018 - 10:00 в Selenium - Functional Testing

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




#170684 Как узнать если объект на страничке, для определения дальнейших действ

Отправлено автор: MissLeman 29 января 2019 - 12:38 в Selenium - Functional Testing

Текст, насколько я понимаю, это не то что нельзя, просто зачем изобретать велосипед, если у вас есть запорожец. И зачем ездить на запорожце, если есть феррари :)

 

С текстом еще вот какая проблема бывает, у меня не далее как на прошлой неделе четыре теста полегло, потому что разработчик, никому не сказамши, исправил по указанию дизайнера title (этот атрибут тоже, кстати, надо юзать с осторожностью, т.к. по сути он тот же текст) с More Actions на More actions. Подумаешь, буковка, что там тестировать.




#170604 Как узнать если объект на страничке, для определения дальнейших действ

Отправлено автор: MissLeman 24 января 2019 - 14:10 в Selenium - Functional Testing

ну, я не спец в этом (может Татьяна поправит потом), но вообще локаторы надо писать примерно так:

1) есть ID - ищем по ID

2) нету ID, но можно написать однозначный локатор по css - пишем по css

3) если нет, остается xpath, пишем, опираясь на атрибуты элемента (класс, ссылка... НЕ текст, не title и т.п.)

4) и только в самом крайнем случае юзаем текстовое содержимое, но само по себе ничего страшного в этом нет, иногда без этого никак (например, открыть дропдаун со странами и выбрать определенную страну - форматирование у всех элементов, скорее всего, будет одинаковым).

 

если вам поставили цель, раскрутите этих, которые поставили, на тренинг Баранцева Java для тестировщиков, вам намного легче будет, думаю, или еще какой-нибудь курс по нему найдите




#170555 Как узнать если объект на страничке, для определения дальнейших действ

Отправлено автор: MissLeman 22 января 2019 - 09:19 в Selenium - Functional Testing

Если есть Id, зачем xpath? :)




#170536 Как узнать если объект на страничке, для определения дальнейших действ

Отправлено автор: MissLeman 21 января 2019 - 08:47 в Selenium - Functional Testing

https://www.guru99.c...h-selenium.html вот это почитайте, имхо лучший материал по XPATH (но не забываем, что кроме икспасов еще есть css локаторы и, возможно, какие-то специфичные для инструмента)




#169304 Как получить куки и профиль пользователя

Отправлено автор: MissLeman 05 ноября 2018 - 10:06 в Автоматизированное тестирование

https://stackoverflo...me-installation ?

А зачем это вам, если не секрет?




#169607 ChromeDEV TOOLS

Отправлено автор: MissLeman 21 ноября 2018 - 15:06 в Тест-дизайн и ручное тестирование

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

 

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




#169577 Общий вопрос по автоматизированнному тестированию и языкам

Отправлено автор: MissLeman 20 ноября 2018 - 10:30 в Автоматизированное тестирование

Я прошла курс с# для тестировщиков у Баранцева здесь, а потом жизнь в лице начальника заставила писать тесты на js, переучилась без проблем (правда, js учила не совсем с нуля, раньше приходилось сталкиваться, но на самом базовом уровне).

 

З.Ы. Вернее, проблемы были, но связанные как раз с тем, что у нас проект на C# и по многим причинам надо было тесты тоже писать на нем, не знаю какого черта они захотели протрактор.




#170278 Письмо Деду Морозу от тестировщика

Отправлено автор: MissLeman 30 декабря 2018 - 09:51 в Свободное общение

Что бы вы, как тестировщик, попросили у Деда Мороза?

(вот я например)

 

Дорогой Дедушка Мороз,

 

пожалуйста, сделай так, чтобы я больше никогда не видела экспектов, запрятанных в методы страниц; объявления элементов через локаторы каждый раз заново в каждом тесте (или каждом методе); удаленных втихушку багов ("Мы решили, что не будем это фиксить" - "А почему?" - "Ммм да фиг знает, сто лет прошло, уже и не помню").

 

А еще, если можно, чтобы браузер Safari взял да исчез бесследно.




#170282 Письмо Деду Морозу от тестировщика

Отправлено автор: MissLeman 31 декабря 2018 - 06:16 в Свободное общение

Вообще с ним все отлично, просто мешает лично мне :))




#167614 Как понимать "~30 тест кейсов, разделенных на группы: Critical, Ma

Отправлено автор: MissLeman 06 августа 2018 - 14:07 в Начинающему тестировщику

Поцыэнт Автор получил тестовое задание: составить и протестировать кейсы к приложению на Андроид типа "блокнот", а полученные баги разделить на группы Critical, Major, Minor, и интересуется знать: должно быть 30 кейсов или 30 багов.

 

Ответ: вряд ли будет получен без ссылки на приложение. Да и то вряд ли будет получен, т.к. кто ж это знает.