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

Аудит и оптимизация QA-процессов
онлайн, начало 24 декабря
Автоматизация функционального тестирования
онлайн, начало 27 ноября
Логи как инструмент тестировщика
онлайн, начало 30 ноября
Тестирование REST API
онлайн, начало 30 ноября
Фотография

Помогите автоматизировать. CodedUI + Кастомные контролы.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 stezz

stezz

    Новый участник

  • Members
  • Pip
  • 17 сообщений


Отправлено 06 апреля 2015 - 08:22

Доброго времени суток всем!

 

Есть задача: есть десктопное приложение, необходимо автоматизировать его с помощью CodedUI и никак иначе. Контролы кастомные разные есть, в том числе и Telerik.

Стандартный рекордер практически ничего не может : записанный тест не воспроизведется (не может найти кастомные контролы).

 

Какие попытки с моей стороны были:

1. Создаю UImap: в него через поиск элементов и ручную правку параметров поиска могу найти какой-нить объект, но в один UImap не получается засунуть несколько элементов. Этот вариант мне не нравится, очень неудобно использовать

 

2. Поиск элементов вручную у меня толком не вышел - ничего не находит, если не использовать UIMap.

3. Cuite: в нем для telerik только combobox элемент есть, других нет. Видимо, не очень подходит.

 

Что я хотел бы узнать у вас: 

 

Какие средства и способы я могу еще использвать? Если кто писал автотесты в codedui для десктопа без UImap - рассакжите, пожалуйста.

 

ps подход как для автоматизации веба тут не прокатит: нельзя просто писать id или аналоличные вещи элемента, чтобы нажать на них.

 

Буду рад любой помощи!


  • 0

#2 Freiman

Freiman

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 572 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 06 апреля 2015 - 12:33

О-хо-хо..
Ну тут вообще-то больше всего подходит "никак".
Даже если вы извратитесь и найдете какой-то способ - он будет сложный и ненадежный, и любое изменение интерфейса все поломает.

Все, чем я могу помочь - посоветовать тестить руками, а автоматизировать на уровне модульного/интеграционного тестирования, какие-то библиотеки, API - все то, что хорошо поддается автоматизации, а на гуёвую автоматизацию забить - судя по всему, много геморроя, мало пользы.
  • 2

#3 stezz

stezz

    Новый участник

  • Members
  • Pip
  • 17 сообщений


Отправлено 06 апреля 2015 - 14:58

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

Я с вами согласен, в плане что в таких тесных условиях как-то что-то делать крайне сложно (если вообще реально).

Но это желание заказчика. Тулза выбрана им, деньги платит, говорит "делайте".

На текущий момент я решение не нашел, кроме как использовать uimap, ибо это хотя бы какой-то результат даёт.

Решение проблемы смещается из технической плоскости в разговорную.

 

 

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


  • 0

#4 Freiman

Freiman

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 572 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 06 апреля 2015 - 20:57

А, ну если "заказчик хочет", то тут придется страдать и учиться :)

Технического решения я вам подсказать не могу, к сожалению.

Видимо, в вашем случае можно кликать чуть ли не по координатам на экране - и то эффективнее будет :)


  • 0

#5 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 07 апреля 2015 - 05:14

Для кастомных контролов есть плагины, поищите http://www.telerik.c...ui-support.html ?

Рекордер почему не воспроизводит ? Криво записывает?

Откройте spy++, посмотрите дерево которое он возвращает, поможет руками создать мапу приложения

> но в один UImap не получается засунуть несколько элементов

Что?


  • 0

#6 stezz

stezz

    Новый участник

  • Members
  • Pip
  • 17 сообщений


Отправлено 07 апреля 2015 - 08:04

Добрый день!

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

 

Для кастомных контролов есть плагины, поищите http://www.telerik.c...ui-support.html ?

 

Пробовал я и еще один человек с проекта, определяло контролы только хуже :(

 

 

Рекордер почему не воспроизводит ? Криво записывает?

Не находит элементы при воспроизведении. Хотя Search Property нормальные, логичные.

 

 

 

Откройте spy++, посмотрите дерево которое он возвращает, поможет руками создать мапу приложения

spy++ знаю. Как руками создать мапу?

 

 

> но в один UImap не получается засунуть несколько элементов

Что?

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


  • 0

#7 Сергей

Сергей

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 177 сообщений
  • Город:Москва

Отправлено 07 апреля 2015 - 08:22

Простите, к-но, но не удержался. В Вашей компании тестирование, в частности автоматизатор, вообще для чего? Чтобы было???

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


  • 0

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


#8 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 07 апреля 2015 - 10:43

>Не находит элементы при воспроизведении. Хотя Search Property нормальные, логичные.

Продебажьте до момента определения, посмотрите через spy++, что там на самом деле сейчас в элементе

 

> В некоторых случаях (не во всех), при определении нового элемента в мапу удаляется старый. Почему - не знаю. Некоторые объекты хорошо дружат в одной мапе, некоторые перетирают себя.

Значит у них одинковые свойства по мнению Coded UI

 

> spy++ знаю. Как руками создать мапу?

Создать руками также как создает рекордер, только в нем много мусора


  • 0

#9 stezz

stezz

    Новый участник

  • Members
  • Pip
  • 17 сообщений


Отправлено 07 апреля 2015 - 13:17

Простите, к-но, но не удержался. В Вашей компании тестирование, в частности автоматизатор, вообще для чего? Чтобы было???

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

У нас аутсорс. Заказчик платит и выбирает тулзу. Были лицензии у него на visual studio premium - их и дали.

Сам я для них сначала ресерч удачно провел на триалке ranorex [параллельно отправив репорт в ranorex о багах в автоматизации ribbon панели, который они специально для меня пофиксили в ближайшей версии], но в итоге отказался заказчик. Я бился и объяснял, что через codedui дольше будет, но их это не волнует - не хотели докупать ничего нового. Честно говоря, я на этой теме уже много головняков словил, но другую сторону это не очень волнует.

 

wret 

Спасибо, попробую. 


  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале