Cross platform appium inspector

66 views
Skip to first unread message

Andreas Lüdeke

unread,
Jun 12, 2015, 4:21:03 AM6/12/15
to appium-d...@googlegroups.com
Hey,

i just spend some ours in the last 2 weeks and wrote a new cross platform rewrite of the appium inspector. The reasons for that are basically:

 - not cross platform (sry but prefer to use linux and hate to it to maintain 3 programs which do basically the same, only for different platforms)
 - usability glitches (like configuring the capabilities ist super complicated for newbies)
 - bugs (like appium inspector osx doesn't close the session after inspecting, click on screenshot to find an element)
 - missing features (save and restore complete screens as screen objects)

I did a lot workshops in the last months to convince people to use appium but when they start using the Inspector its always a not satisfying experience.

My idea is to create an Inspector which fulfills at least the following requirements:

 - make the initial configuration as easy as possible (don;t ask for config paramters but for the users usecase)
 - let the users find identifiers as easy as possible (search by label, or click on screenshot)
 - make it possible to use the inspector and a running tests a the same time (the stop/start loops in the inspector are quite annoying)
 - make it possible to work with remote appium servers (so that i can create ios tests also on other platforms)
 - save and restore complete screens (including screenshots, ui hierarchy and favorite elements) to have data which can be used to generate screen objects in different programming languages

I would love to get more usescases collected to setup a proper architecture/ui lautout for the new inspector.

Technical wise i have choosen electron (thx Jonathan for the hint) which is used by e.g. atom.io. The view is rendered by angularjs (which is from my experience easy to use and the most popular html/js framework out there). Code is currently written in JS but i would prefer something like TypeScript or ES6 in the future. As ui library i am currently using angular material.

As electron uses nodejs appium is a direct dependency of this project and comunication between ui and appium is realized via the electron remote module (some kind of rpc calls). 

The current version is just a prototype but i am suprised how quick i got something up and running. The ui isn't polished yet and didn't include any usability improvements.

I would love to collect feeback about further potential usecases and technical setup before i release the source.

Some screenshots:







 











bootstrap online

unread,
Jun 12, 2015, 9:00:37 AM6/12/15
to appium-d...@googlegroups.com
I think the "Object Identification Center" use case as identified by HP's new testing product is important.
https://saas.hp.com/software/leanft

The idea is to enable recording tests at the page object level instead of individual identifiers.

--
You received this message because you are subscribed to the Google Groups "appium-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to appium-develop...@googlegroups.com.
Visit this group at http://groups.google.com/group/appium-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/appium-developers/a8cc0958-1648-47a2-8254-ff0724e6a4d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jonathan Lipps

unread,
Jun 12, 2015, 12:30:38 PM6/12/15
to appium-d...@googlegroups.com
Wow, thanks for this Andreas! Looks like it's an amazing first stab at the cross-platform inspector on our roadmap. Really glad to see Appium as a code dependency instead of a subprocess. Will make error handling so much easier.

In terms of UI/UX, I don't have specific thoughts at the moment. I will give it a shot the next time I'm doing a workshop and see what comes up!

In terms of the Appium integration, I think you're already aware that the architecture is changing in a way that will affect this work as well, but I think only in ways that will make it easier/cleaner.

If you're willing for this to be the foundation for the Appium inspectors that are on our roadmap, I'd love to host the code at the appium org on GitHub. Let me know.

Jonathan

Andreas Lüdeke

unread,
Jun 13, 2015, 2:11:20 PM6/13/15
to appium-d...@googlegroups.com
my plan was to make it super simple to create/edit page objects and generate code for different languages out of it. I will add this very soon, as i need it in every customer project we do. For the recording functionality i am not yet 100% convinced. Also customers are always asking for it i am not aware of any tool/algorithm which does that with acceptable results. Would love to learn how you would do that.

bootstrap online

unread,
Jun 13, 2015, 3:19:26 PM6/13/15
to appium-d...@googlegroups.com
Instead of the approach apple has taken with Xcode 7, I would automatically detect if the active element is in the active page object. If so, then I'd output the recording code using the page object reference instead of the hard coded identifier. If the element isn't in the page object, I'd prompt the user to define it.

I recommend checking out EZ TestApp. They build on top of appium and provide a page object builder purely within a GUI.

bootstrap online

unread,
Jun 13, 2015, 3:32:16 PM6/13/15
to appium-d...@googlegroups.com
Tenkod has some youtubes.

At 3:40 you can see the code, it's not a true page object since they're just retaining the element references.
https://www.youtube.com/watch?v=PGB8eGsy8IU

Jonah Stiennon

unread,
Jun 15, 2015, 1:29:23 PM6/15/15
to appium-d...@googlegroups.com
Yes yes YES. The Appium inspectors have suffered from the pain-points you mentioned for a while.
I'm really glad you chose to go with Electron =D

Thanks Andreas!

bootstrap online

unread,
Sep 17, 2015, 8:42:11 AM9/17/15
to appium-d...@googlegroups.com

Hi,

Did the electron based appium inspector get released to github?

Thanks,
Matthew

Andreas Lüdeke

unread,
Sep 18, 2015, 2:20:12 AM9/18/15
to appium-d...@googlegroups.com
Hey,

sry for not providing further updates, i was fortunately to busy to continue on it. I pushed my latest state here:


Its far away from beeing production ready but probably a good starting pointing. Hope i can continue on it in the next weeks.

BR

Andreas

Andreas Lüdeke
Chief Technology Officer

TestObject GmbH
Neuendorfstr. 18b
16761 Henningsdorf

Email: andreas...@testobject.com
Check out our website: http://www.testobject.com
Follow us on Twitter: @testobject / @aluedeke
See what others write about us: http://techcrunch.com/2013/01/21/testobject

TestObject GmbH
Neuendorfstr. 18b
16761 Hennigsdorf

Geschäftsführer: Hannes Lenke
Amtsgericht Neuruppin, Registernummer: HRB 10380 NP

--
You received this message because you are subscribed to a topic in the Google Groups "appium-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/appium-developers/8FF_hutwhuE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to appium-develop...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages