Skip to main content

btApplication Automation

  • Leistungsmerkmale
  • Die Anwendung btApplication Automation (btAppAutomation) ermöglicht es Anwendungsabläufe automatisiert ablaufen zulassen. Dies erfolgt wahlweise einmalig oder in wiederkehrenden Arbeitsabläufen. Alsunterstützendes Werkzeug wird auf die Bibliothek von Selenium zurückgegriffen. Die Anwendungen können dabei als Webanwendung oder Standard API vorliegen.

    Die Anwendung besteht aus den Teilwerkzeugen:

    • Automationsprogramm (btAppAutomation - siehe Bild unten) und einem
    • Recorder (btAppAutomationRecorder).

    - (FREEWARE)

  • Systemvoraussetzungen
  •  

    Architektur der Hardware

    Spezifikation

    Prozessor

    2x Logische Prozessoren

    Hauptspeicher [GB]

    2

    Festplattenspeicher [MB]

    50

     

    Architektur der Software

    Spezifikation

    Betriebssystem

    Windows 10/11 (x86 & x64)

    SDK

    Microsoft .NET Framework Version 4.8.1
    Redistributable  Package

     

Die Anwendung btApplication Automation (btAppAutomation) ermöglicht es Anwendungsabläufe automatisiert ablaufen zulassen. Dies erfolgt wahlweise einmalig oder in wiederkehrenden Arbeitsabläufen. Alsunterstützendes Werkzeug wird auf die Bibliothek von Selenium zurückgegriffen. Die Anwendungen können dabei als Webanwendung oder Standard API vorliegen.

Die Anwendung besteht aus den Teilwerkzeugen:

  • Automationsprogramm (btAppAutomation - siehe Bild unten) und einem
  • Recorder (btAppAutomationRecorder).

- (FREEWARE)

 

Architektur der Hardware

Spezifikation

Prozessor

2x Logische Prozessoren

Hauptspeicher [GB]

2

Festplattenspeicher [MB]

50

 

Architektur der Software

Spezifikation

Betriebssystem

Windows 10/11 (x86 & x64)

SDK

Microsoft .NET Framework Version 4.8.1
Redistributable  Package

 

INI File Configuration

The configuration file supports the following functions:

Key name

Value

Description

[General]

ProcessTakeOver

False

By setting the value to “True” the application can hire an existing process from an application enforced to run in automation mode.

A value of “False” creates a new process.

DateTimeFormatMeasure

dd.MM.yyy HH:mm:ss.fffffff

For the log file analysis

DefaultWebBrowser

Firefox

The browser which will be used for web automation.

OpenFolder

C:\LastOpenFolder

Last used folder for the automation configuration files.

ConfigurationFile

Automation_ITSM_Login_DE.ini

The last used automation configuration file.

UseAutoSizeForm

False

The own application can be stretched by setting the value to “True”.

[Pfade]

PfadTemp

AppData.Path\TMP\

Folder where screenshots are stored in case of failures.

 

Automation Configuration INI File

The configuration file supports the following functions. The function description is made by example.

Key name

Value

Description

[General]

ApplPath

..\..\CryptoCalc\bin\Debug

API automation path

ApplName

CryptoCalc.exe

API automation application

ApplHeader

CryptoCalc

API header information

ControlSequenceLoop

True

Controls whether the application is running in specified loops.

WebPath

http://onbmc/arsys

HTTP path for application

WebDriverWaitGlobal

3

Time delay to compensate timing issues between web server and web browser.

WebDriverKeepOpen

False

Keep the web browser open after the last automation run.

[ControlSequenceLoop]

LoopStart

0

Start with ControlSequence0

LoopEnd

3

End with ControlSequence3 and then go to ControlSequence0

LoopInterval

3

After 3 time go to next Control Sequence = ControlSequence4

[ControlSequence]

AutomationId;Increment;IncrementBy

ControlSequence0

Textbox1;True;5

Go to [Textbox1], increment value by “5” and continue as described in target group.

ControlSequence1

Radiobutton2;False;0

Go to [Radiobutton2], don’t increment value and continue as described in target group.

ControlSequence2

Button3;False;0

Go to [Button3], don’t increment value and continue as described in target group.

ControlSequence3

Textbox4;False;0

Go to [Textbox4], don’t increment value and continue as described in target group.

ControlSequence4

Menu4;False;0

Go to [Menu4], don’t increment value and continue as described in target group.

[Textbox1]

AutomationId;<value to enter>

Textbox0

textBox1;Hello!

Go to “textBox1” and enter “Hello!”

[Radiobutton2]

AutomationId;<label>

Radiobutton0

radioButton1;DES Encrypt

Go to “radioButton1” which is labeled as “DES Encrypt” and select it.

[Button3]

AutomationId;<label>

Button0

button1;Compute

Go to “button1” which is labeled as “Compute” and select it.

[Textbox4]

AutomationId;<output text>

Textbox0

textBox2;<WAIT_FOR_OUTPUT>

<OUTPUT> - output in object field

<WAIT_FOR_OUTPUT> - wait until output in object field has been executed

[Menu4]

Name;<label>

Menu0

File;File

Go to “File” which is labeled as “File” and select it

Menu1

Exit;Exit

Go to “Exit” which is labeled as “Exit” and select it

[ControlSequenceLoopWeb]

LoopStart

0

Start with ControlSequence0

LoopEnd

8

End with ControlSequence8and then go to ControlSequence0

LoopInterval

3

After 3 time go to next Control Sequence = ControlSequence4

[ControlSequence]

AutomationId;Increment;IncrementBy

ControlSequence0

FindElementBy1;False;0;
IdTextField

Go to [FindElementBy1], don’t increment value and continue as described in target group.

ControlSequence1

FindElementBy2;False;0;
IdTextField

Go to [FindElementBy2], don’t increment value and continue as described in target group.

ControlSequence2

FindElementBy3;False;0;
Button

Go to [FindElementBy3], don’t increment value and continue as described in target group.

ControlSequence3

WebDriverWait4;False;0;
WaitForPageToLoad

Go to [WebDriverWait4], don’t increment value and continue as described in target group.

ControlSequence4

WebDriverWait5;False;0;
Id

Go to [WebDriverWait5], don’t increment value and continue as described in target group.

ControlSequence5

FindElementBy6;False;0;
IdLink

Go to [FindElementBy6], don’t increment value and continue as described in target group.

ControlSequence6

WebDriverWait7;False;0;
ClassName

Go to [WebDriverWait7], don’t increment value and continue as described in target group.

ControlSequence7

FindElementBy8;False;0;
ClassNameLink

Go to [FindElementBy8], don’t increment value and continue as described in target group.

ControlSequence8

WebDriverWait9;False;0;
WaitForPageToLoad

Go to [WebDriverWait9], don’t increment value and continue as described in target group.

[FindElementBy1]

Function;Id;<value to enter>

FindElementById_TextField0

n/a;username-id;
Username dialog field

Only go to field “username-id”

FindElementById_TextField1

Clear;username-id;n/a

Clear dialog field

FindElementById_TextField2

SendKeys;username-id;
Allen

Enter the username “Allen” into the dialog field.

[FindElementBy2]

Function;Id;<value to enter>

FindElementById_TextField0

n/a;pwd-id;
Password dialog field

Only go to field “pwd-id”

FindElementById_TextField1

Clear;pwd-id;n/a

Clear dialog field

FindElementById_TextField2

SendKeys;pwd-id;
password

Enter the password “password” into the dialog field.

[FindElementBy3]

Function;AutomationId;<label>

FindElementByXPath_Button0

n/a;//input[@value= Log In];
Anmelde button

Go to button “Log In”

FindElementByXPath_Button1

Click;//input[@value= Log In];
n/a

Click on button “Log In”

[WebDriverWait4]

Function;AutomationId;<label>

WebDriverWaitForPageToLoad_
WaitForPageToLoad0

n/a;n/a;10

Wait max. 10 seconds before continue.

[WebDriverWait5]

Function;AutomationId;<label>

WebDriverWaitById_Id0

n/a;WIN_0_300000044;30

Wait max. 30 seconds for object “WIN_0_300000044” continue

[FindElementBy6]

Function;AutomationId;<label>

FindElementById_Link0

n/a;WIN_0_300000044;
Home button

Go to object “WIN_0_300000044”

FindElementById_Link1

Click;WIN_0_300000044;n/a

Click on object “WIN_0_300000044”

[WebDriverWait7]

Function;AutomationId;<label>

WebDriverWaitClassName_
ClassName0

n/a;ReturnHome;10

Wait max. 10 seconds before continue.

[FindElementBy8]

Function;AutomationId;<label>

FindElementByClassName_Link0

n/a;ReturnHome;
Return to Homepage link

Go to link “ReturnHome”

FindElementByClassName_Link1

Click;ReturnHome;n/a

Click on link “ReturnHome”

[WebDriverWait9]

WebDriverWaitForPageToLoad_
WaitForPageToLoad0

n/a;n/a;10

Wait max. 10 seconds before continue.

 

API Application

Configuration file

  • Configuration file for the automation execution (either API or Web)

Output

  • Text Box – The output text is in sequential order
  • Tree View - The output text is in sequential order, but build in tree view

Application Type

  • API application automation execution
  • Web application automation execution

Take over running application

  • By setting the check mark the application can hire an existing process from an application enforced to run in automation mode.

Show Chart by Loop

  • The chart analysis is considering loop sequences.

How to collect API information for automation INI file

Usually use one of the following tools “inspect_x86.exe” or “inspect_x64.exe” provided by the Microsoft Windows SDK package.

Sample from automation INI file:

;=== API Section starts here ==========================

[ControlSequence]

;---------------|AutomationId;Increment;IncrementBy

;Increment is only valid for Textboxes

ControlSequence0=Textbox1;True;5

ControlSequence1=Radiobutton2;False;0

ControlSequence2=Button3;False;0

ControlSequence3=Textbox4;False;0

ControlSequence4=Menu4;False;0

 

[Textbox1]

;-------|AutomationId;<value to enter>

Textbox0=textBox1;Hello!

How the element names were identified by using the API inspect tool:

  1. Start tool “inspect_x64.exe”
  2. Then click on element, which should be part of the automation.
  3. Collect the name

Web application

Keep Web Browser open

  • By setting the check mark the web browser kept open after the last automation run.

How to collect Web element information for automation INI file

The process to collect the element names from browser page and to put it into the automation INI file.

Sample from automation INI file:

;=== Web Browser Section starts here ==========================

[ControlSequenceWeb]

;---------------|AutomationId;Increment;IncrementBy

;Increment is only valid for TextFields

ControlSequence0=FindElementBy1;False;0;IdTextField

ControlSequence1=FindElementBy2;False;0;IdTextField

ControlSequence2=FindElementBy3;False;0;Button

ControlSequence3=WebDriverWait4;False;0;WaitForPageToLoad

ControlSequence4=WebDriverWait5;False;0;Id

ControlSequence5=FindElementBy6;False;0;IdLink

ControlSequence6=WebDriverWait7;False;0;ClassName

ControlSequence7=FindElementBy8;False;0;ClassNameLink

ControlSequence8=WebDriverWait9;False;0;WaitForPageToLoad

 

[FindElementBy1]

;-------------------------|Id;<value to enter>

FindElementById_TextField0=Clear;username-id;IdentifyObjectFirst

FindElementById_TextField1=SendKeys;username-id;Allen

How the element names were identified by using the web browser debug function:

  • Set Web Browser into debug mode – in Firefox use press [F12]
  • Got to [Inspector] and click on [Animation]
  • Then click on element, which should be part of the automation.
  • Collect the name

Beispielsansicht

Übersicht der Benutzeroberfläche mit verfügbaren Schnelldokumentation nach Programmstart.

Änderungen vorbehalten!