I've started investigating dogtail as a solution for writing GUI-driven unit tests in a GNOME Wayland session. Before I dive deeper I want to understand what I'll need to run these GUI-based tests on a remote server. (I've been bitten before by assumptions about the graphics capabilities of VMs and containers.)

So my plan is to:

  1. Create a fresh clone
  2. Run apt update and apt upgrade
  3. Install packages and test scripts
  4. Run a script to log into a desktop session (how?)
  5. Run the test scripts in a live desktop session
  6. Record the results
  7. Exit the desktop session (how?)
  8. Destroy the clone

If the original snapshot is taken while in a desktop session, I can avoid steps 3 and 7, and just execute steps 2, 3, 5 and 6 in the session, but I'd prefer to have the option of a "first login" test.

What capabilities am I looking for in the hosting server and software? If I can use a local client to access a visual desktop session, is that sufficient?

(Concrete examples of viable hosts are welcome but not required. I'm trying to understand the principles rather than picking any particular tool.)


2 Answers 2


You could dispense with the login and run the desktop session directly or you could configure a user account to autologin,

your test scripts could then be triggered at session startup , you might want to add a small delay to be sure the login is settled.

then when they are done they can run 'gnome-session-quit' to logout, this will cause a loop if you use autologin so you might need to stop X/wayland via systemd instead.

wayland is rather new and IIRC has done away with X Windows remote display functionality (XDMCP) which would have been very useful here. X windows also allows you to run a nested X server within a window , this might be possible with wayland , in which case dogtail should be able to drive it.

  • something else you will need to deal with is the lack of 3d acceleration on remote desktops if you use VNC , depending on your application this could result in different performance characteristics or the application doesn't start
    – Amias
    Nov 7, 2018 at 15:31

Just do it locally using a Docker Chrome instance. Search dockerhub.com . One of those such images is Aerokube . That way you do not need a remote machine. There are some cases where you need a remote machine but they are fringe cases in my opinion. Another example is Selenium-Jupiter framework, which has its own hand built infrastructure to start a docker image.

Docker is easy to use if you install it and use the "Docker Dashboard" or "Kitematic".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.