Releases: log0div0/testo
v2.2.9
Image detection and improved text recognition
Testo Framework now provides you with the opportunity to detect images on the screen (additionally to detecting text). Image detection can be used in the actions wait
, click(lclick, rclick, dclick)
and the check
expressions.
In addition, the accuracy of text recognition has been significantly improved, including large text, italics and bold text.
GeForce RTX 30 Series support
Added support for the latest series of video cards. Please note that the Testo GPU-version now requires a CUDA driver with CUDA version 11.1 support.
Improved performance of guest additions
The copyto
and copyfrom
actions now work much faster and are suitable for copying very large files. Guest additions use no more than 1MB of RAM for their work. When updating Testo to a new version, do not forget to update the ISO image with guest additions.
Macros with commands
Macros now can consist of commands (additionally to macros with actions).
video
virtual machine attribute
Now you can change the settings for the emulated video device in virtual machines with the new video
attribute.
Custom virtual machine loaders
Now it is possible to customize the virtual machine boot loader if, for some reason, you're not OK with the default boot loader.
Testo interpreter exit codes
Testo interpreter now has several exit codes.
v2.1.0
Flash Commands
A new commands type appeared in Testo-lang - flash commands. Now you can reference flash drives in tests as virtual entities (alongside with virtual machines). The following actions are available for flash drives:
copyto
(Copy files from the Host to the flash drive);copyfrom
(Copy files from the flash drive to the Host);print
,abort
(Works just like for virtual machines);- Macro calls,
if
andfor
clauses (Works just like for virtual machines).
Waiting for the erasing confirmation in testo clean
testo clean
command now prints all the virtual entities that the Testo Framework is about to erase before the actual erasing. The actual erasing requires a confirmation. There is also --assume_yes
command-line argument available for testo clean
mode.
Arbitrary number of --test_spec
and --exclude
command-line arguments
Now you can specify --test_spec
and --exclude
command-line arguments multiple times. Test will be scheduled to run according the order in which these aruments apper in the command line.
Printing macro call stack
Now when an error occurs inside a macro call - you get the whole macro call stack printed out for you
v2.0.1
Fixating Testo Lang syntax and backward compatibility guarantees.
Major update reflects fixating the main concepts and syntax constructs in Testo Lang. We have a clear vision for the Testo Lang future and we have a lot of new features planned for 2.x versions. However we are certain that new features won't lead to losing backward compatibility.
And thus we hereby give you our guarantees that starting with 2.0.1 Testo version all the already working tests will work in any future 2.x Testo version. In an unlikely event of backward compatibility-breaking syntax change, Testo will support the old syntax for some time. Additionally, a message will pop up warning of using deprecated syntax.
Redesign of Virtual Flash Drives managing
The Virtual Flash Drive managing is completely re-done. Thus the tests using virtual flash drives reliability increased greatly.
Extended actions parameterization possibilities
Several actions now can take strings as some arguments (instead of the usual literals). In this strings param referencing is available (as in any other strings). Below you can see the complete list of arguments that now may be passed as strings:
timeout
value inshutdown
actions;interval
value inpress
actions;interval
value intype
actions;timeout
value insleep
actions;timeout
andinterval
values inwait
actions;timeout
andinterval
values incheck
expressions;timeout
value inmouse
actions;- name values in plug/unplug flash/link/nic actions;
timeout
value inexec
actions;timeout
value in copyto/copyfrom actions.
Now you could, for example, place an plug flash
action in a macro with the flash name passed as the macro argument.
Param resolving algorithm changes
When trying to reference a param which wasn't declared an error will be generated (instead of returning an empty string).
To check whether a param is declared or not a new expression DEFINED
is now available in if
statements.
Other changes
- Now
RANGE
could take integers as arguments (as well as strings). - A command contain exactly one virtual machine, no more.
- The Windows guest additions installer is now English.
v1.6.1
Self-building
We are glad to inform you that Testo Framework has reached a new step in its lifecycle. Version 1.6.1 is the first Testo version which was build by the Testo itself. Yes, Testo is a tests automation framework but it doesn't mean you can't automate other tasks with it (for example, building a project or deploying a Virtual Test Bench for debugging puproses). Keep that in mind when doing your routines for a 100-th time.
Fixes
- fixed a bug with the
unplug dvd
action - fixed a bug when copying files from a Windows-guest to a Linux-host with a
copyfrom
action - fixed a bug when copying files from a Linux-host to a Windows-guest with a
copyto
action
v1.6.0
Importing manually setup virtual machines
Testo Framework now have the possibility to create virtual machines with a disk imported from an existing virtual machine. Now you can manually setup a virtual machine, configure it to your liking and then import the results into Testo Framework.
Multiple disks in a single virtual machine support
Now you can specify several disks inside one virtual machine configuration.
Holding down keyboard keys
Added the possibility to hold down and release keyboard keys.
Selective semantic checks improvement
Numerous bugs were fixed in the selective semantic checks algorithm (first introduced in version 1.5.1).
v1.5.1
GPU-accelerated screen contents detection
Testo Framework now have two distributives:
- With CPU-driven neural network processing
- With GPU-driven neural network processing
Right now can guarantee Testo support for videocards NVIDIA GTX 1050 and higher. Nvidia-provided driver is required.
Adjustment for the files checksumming threshold
With the new command line argument --content_cksum_maxsize
you can change the maximum size of files which have checksum calculated based on the contents (not a Last Modify timestamp). Default value is 1 Megabyte.
Selective semantic checks
Semantic analysis is now done only for the tests you want to run (according to the --test_spec
and --exclude
command line arguments).
Only the virtual machines and flash drives mentioned on these tests are undergone the semantic checks.
Basically it means you don't need to have actual artifacts (iso-images, copyto files and so on) for tests you don't want to run.
cpus
attribute in virtual machine declarations
The cpus
attribute now doesn't stand for number of virtual CPUs in the virtual machine, but rather for number of Cores. The CPU is always single now.
Other changes
Now press
support NumPad keys.
v1.5.0
New possibilities for mouse
actions
Added the possibility to place the mouse cursor with much more accuracy:
- If there are several instances if an expected text on the sceen you can specify which one interests you;
- You can navigate the cursor inside the text instance;
- After the cursor positioning inside the text instance you can move it to the right left up or down as much as you need;
- All the specifiers are also available as methods and functions inside JS-selectors.
Adjustment for the default values of timeouts and intervals in actions
Added the posibility to change the default values for timeouts and intervals using special (reserved) params.
interval
specificator for type
actions
Now you can adjust typing speed in type
actions with changing the interval between the key pressings.
JS-selectors changes
JS-selectors are re-developed and now have new classes and functions. Backward compatibility is lost.
Guest additions
- Guest additions now support Windows 8, Windows 8.1 and Windows 10 guests
- Guest Additions now support x86 guest OSes
v1.4.0
Mouse actions
Now you can control the mouse cursor with the mouse
action:
- Move the cursor to a certain text on the screen
- Move the cursor to specified coordinates
- Move the cursor with JS-selectors
- Additionally you can click, right-click or double-click the mouse
- Hold down and relesae left and right mouse buttons
interval
specificator in several actions
In actions wait
and press
as well as in expressons check
you can specify an interval <time_interval>
option with which you can adjust screen checking frequency (wait
, check
) and keys pressing frequency (press
).
Newlines in one-line strings
It is possible now to add newlines in one-line strings. Newlines must be preceded with the escaped character like this: \n
Other changes
- New action:
sleep
- New syntax for the
for
loop copyto
action supports cyrillic file names