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

Фотография

Помогите автоматизировать. 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 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 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 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 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 245 сообщений
  • Город:Москва

Отправлено 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 анонимных