Skip to content
This repository has been archived by the owner on Aug 15, 2023. It is now read-only.
/ us-ac-re Public archive

The repetition of user actions && Automation Tools for Testing Windows Desktop Applications

License

Notifications You must be signed in to change notification settings

viordash/us-ac-re

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

us-ac-re

The repetition of user actions

Проект приостановлен, но не закрыт.

Функциональное тестирование приложений в Windows. Построение дерева компонентов, от Desktop до целевого компонента, над которым находится курсор мыши.

Определение нажатия клавиш клавиатуры.

Определение компонента под мышью в:

  • практически все приложения с окнами, стабильно определяются компоненты в WinForms, Wpf.
  • Web сайты в Chrome, FF, Edge и IE

Законченные компоненты проекта:

  • UsAcRe.Recorder.UI - запись действий пользователя. Можно добавлять паузы или вставлять ранее сохраненные скрипты для унификации одинаковых действий.
  • UsAcRe.Player - воспроизведение ранее записанного скрипта (результат в формате xunit). При воспроизведении скрипта, проверяется/ожидается наличие компонента, если не найден/таймаут, то выполнение прерывается

в бранче WebApp, начато веб приложение, Blazor. Для удаленного управления запуском скриптов тестирования:

  • UsAcRe.Web.Client
  • UsAcRe.Web.Server

Скрипты основаны на C#, примерный код, клик по файлам в explorer:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using UsAcRe.Core.Actions;
using UsAcRe.Core.MouseProcess;
using UsAcRe.Core.Services;
using UsAcRe.Core.UIAutomationElement;

namespace UsAcRe.TestsScripts {
	public class TestsScript {
		public async Task ExecuteAsync() {
			await ElementMatchAction.Play(new ElementProgram(0, "explorer"), new List<UiElement>() {
				new UiElement(0, "", "333 - 3 running windows", "", "", 50000, new System.Windows.Rect(631, 1050, 161, 30)),
				new UiElement(0, "", "Running applications", "MSTaskListWClass", "", 50021, new System.Windows.Rect(108, 1050, 2228, 30)),
				new UiElement(0, "", "", "ReBarWindow32", "40965", 50033, new System.Windows.Rect(106, 1050, 2230, 30)),
				new UiElement(0, "", "", "Shell_TrayWnd", "", 50033, new System.Windows.Rect(0, 1050, 2560, 30)),
			});
			await MouseClickAction.Play(MouseButtonType.Left, new System.Drawing.Point(690, 1066), false);
			await ElementMatchAction.Play(new ElementProgram(1, "explorer"), new List<UiElement>() {
				new UiElement(0, "TestCome_size_less_and_curr_ver.cfg", "Name", "UIProperty", "System.ItemNameDisplay", 50004, new System.Windows.Rect(579, 666, 268, 22)),
				new UiElement(0, "", "TestCome_size_less_and_curr_ver.cfg", "UIItem", "2", 50007, new System.Windows.Rect(557, 666, 734, 22)),
				new UiElement(0, "", "Items View", "UIItemsView", "", 50008, new System.Windows.Rect(543, 593, 793, 396)),
				new UiElement(0, "", "Shell Folder View", "DUIListView", "listview", 50033, new System.Windows.Rect(543, 593, 793, 396)),
				new UiElement(0, "", "", "DUIViewWndClassName", "", 50033, new System.Windows.Rect(188, 593, 1148, 419)),
				new UiElement(0, "", "333", "ShellTabWindowClass", "", 50033, new System.Windows.Rect(188, 593, 1148, 419)),
				new UiElement(0, "", "333", "CabinetWClass", "", 50032, new System.Windows.Rect(180, 411, 1164, 609)),
			});
			await MouseClickAction.Play(MouseButtonType.Left, new System.Drawing.Point(630, 676), false);
			await ElementMatchAction.Play(new ElementProgram(1, "explorer"), new List<UiElement>() {
				new UiElement(0, "TestCome_size_larger_and_curr_ver.cfg", "Name", "UIProperty", "System.ItemNameDisplay", 50004, new System.Windows.Rect(579, 624, 268, 22)),
				new UiElement(0, "", "TestCome_size_larger_and_curr_ver.cfg", "UIItem", "0", 50007, new System.Windows.Rect(557, 624, 734, 22)),
				new UiElement(0, "", "Items View", "UIItemsView", "", 50008, new System.Windows.Rect(543, 593, 793, 396)),
				new UiElement(0, "", "Shell Folder View", "DUIListView", "listview", 50033, new System.Windows.Rect(543, 593, 793, 396)),
				new UiElement(0, "", "", "DUIViewWndClassName", "", 50033, new System.Windows.Rect(188, 593, 1148, 419)),
				new UiElement(0, "", "333", "ShellTabWindowClass", "", 50033, new System.Windows.Rect(188, 593, 1148, 419)),
				new UiElement(0, "", "333", "CabinetWClass", "", 50032, new System.Windows.Rect(180, 411, 1164, 609)),
			});
			await MouseClickAction.Play(MouseButtonType.Left, new System.Drawing.Point(652, 636), false);

		}
	}
}

About

The repetition of user actions && Automation Tools for Testing Windows Desktop Applications

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages