GUI automation tool (windows)

S

Steven D'Aprano

That’s the trouble. What’s the point of a GUI, then?

Are you trolling, or do you really fail to understand that the concepts
of *testing a GUI's functionality* and *asking users what sort of
interface they want* are independent concepts?

Let's put it this way...

"Nobody is talking about using automated testing to find out what command
line switches users want on their command line tools."

"That's the trouble. What's the point of a CLI, then?"

Do you see the difference now?
 
S

Steven D'Aprano

Automating a GUI
isn't done to test how well the GUI works for real users.

Or to put it another way... automated tests aren't useful for usability
testing, regardless of whether one is testing a GUI app or a CLI app.

It's done mainly for two purposes:

1) Regression testing to make sure that the GUI's behavior (good,
bad, or indifferent) hasn't changed since the previous revision.

2) To test the functionality underlying the GUI.

I would like to point out that automating GUIs isn't just done for
testing purposes, but has other reasons as well. Probably the most common
is for the same reason any automation is done, be it writing a script or
building a robot: to reduce the amount of manual effort needed to do some
repetitive or frequent task.

Mouse and keyboard event recording software used to be one of the killer
apps for power users back in the days of classic Apple Mac and early
versions of Windows. I'm not entirely sure why they've faded away... it
seems to have left an empty niche, for power users who aren't comfortable
writing shell scripts, batch files or messing about with DBUS, but still
want to automate repetitive tasks.

Another common use is automating interactions with web sites via
mechanize.
 
T

Tim Harig

Mouse and keyboard event recording software used to be one of the killer
apps for power users back in the days of classic Apple Mac and early
versions of Windows. I'm not entirely sure why they've faded away... it

It faided away because automation based on on mouse clicks, and to a lesser
extent key injection, is very fragile. GUIs are subject to changing in
ways that are unpredictable and difficult to detect. Some GUI widget sets
provide some programatic way to access the GUI items directly for testing
and debugging purposes; but, that isn't always available in the final
product.
Another common use is automating interactions with web sites via
mechanize.

There are better ways of automating web site interactions. You can other
generate the GETS and POSTS directly or you can use import the browsers
through COM/XPCOM and manipulate the pages using the browser's DOM object.
 
D

Dennis Lee Bieber

Mouse and keyboard event recording software used to be one of the killer
apps for power users back in the days of classic Apple Mac and early
versions of Windows. I'm not entirely sure why they've faded away... it
seems to have left an empty niche, for power users who aren't comfortable
writing shell scripts, batch files or messing about with DBUS, but still
want to automate repetitive tasks.
<heh> It's not often one needs to be able to hold down five keyboard
keys, AND while holding the keys, eject the floppy, do a mouse click,
reinsert floppy.

That was the sequence to access one of the easter eggs on the Amiga
(OS 1.2 -- the left and right shift and alt keys were considered
separate keys to the low-level event system)
http://www.amigahistory.co.uk/messages.html

I'd think the main problem with such automation tools is their
sensitivity to small changes in the environment; a minor window
positioning change and all the mouse based clicks could need to be
re-recorded/edited. Better to design the application (after all, if one
needs regression testing one likely has access to the source code) to
accept some sort of IPC access to the functions of said program... (You
can no doubt tell that after 20 years I'm still longing for the Amiga's
ARexx ports to be duplicated on other operating systems)
 
C

CM

I know that this question has been asked for several times, but it
surprises that there is no tool under very active development and the
community activities are very low (mailing list posts).

All the tools listed in:

http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy#GUITestingTools

Comparing with AutoIt (www.autoitscript.com), it has tens to hundreds
of posts everyday. AutoIt uses a proprietary BASIC -like language, and
to be honest, I don't like it and I prefer a Pythonic solution.

pywinauto seems to be the best choice but the community has been very
low also. The same happens in pyguiunit, pyAA, WATSUP, all development
seem to be ceased.

So what happens to this field (Windows GUI automation) ?

This is a little late, but you might want to check out Sikuli. Search
for it in
this forum, there is a long thread about it. It might be a new useful
way to
write GUI tests. I have no real idea, though.

Che
 
A

Alex Barna

I'm afraid that my first post has not been understood correctly and
most of the following posts are OT, as Ben Finney indicated.

The GUI automation has a long history, perhaps since the first
windowing system was invented. For years I've been doing this using
several different technologies/languages. But to my surprise, this
ares is not very *cultivated* by Pythonistas. Many projects (see the
link in my first post) have lost the love of their maintainers and
have not been updated for years.

Except one, pywinauto, which has a recent release in April. However,
the community activity (mailing list) is very low, website and
documentation have not been updated for long also. All this freaks me
out on adopting a technology like this :

- is there still anyone using it ?
- what if I encounter a problem but no body replies me in the mailing
list ?

Comparing with the rival AutoIt, using a BASIC-like language, which I
don't like at all, has hundreads of post in the users' forum everyday.

It makes me doubt: is Python the correct language to do GUI
automation ?



P.S.: hopefully it has been clarified, my original intention of the
post is not to debate/discuss:
- *why* automating GUI ?
- whether GUI/CLI is better.
- the points GUI or CLI is designed for.
Obvious they are all OT.


Alex Barna.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top