← Back to team overview

ubuntu-phone team mailing list archive

Memory usage testing

 

Hi all,

the QA Team has just started to produce some numbers regarding memory
consumption. We are starting to run this test case as of today and
gather numbers for mako, maguro, manta and grouper (we are improving the
dashboard to reflect this a bit better in the next couple of days).
Reporting as it stands:

1) The main dashboard page shows some numbers:
http://reports.qa.ubuntu.com/memory/memevent/
2) You can click on an image and go into more details:
i.e. http://reports.qa.ubuntu.com/memory/memevent/image/2/
3.1) From here you can either click on an event you are interested in
and look at extra data:
http://reports.qa.ubuntu.com/memory/memevent/image/2/event/Camera%20app%20picture%20taken/detail/
3.2) Or you can choose "Detailed view" for an overview:
http://reports.qa.ubuntu.com/memory/memevent/image/2/detail/


We are working with devs on making those views comprehensive and useful.
Feel free to send us any feedback.

Thanks,
Gema

PS: for the curious jcollado has recorded a video of the test running[1]


[1] http://www.youtube.com/watch?v=ZWyBOYFg_yk

-------- Original Message --------
Subject: Memory usage measurement test scenario
Date: Wed, 24 Jul 2013 18:20:55 +0200
From: Javier Collado
To: Gema Gomez-Solano

Hello,

The memory usage measurement test scenario is a single test case for
the touch image that generates some events and records the memory
consumption for each one of them.

Events:

1 Phone booted
Phone has booted, user is logged in, shell has started
2 Browser started
Browser has successfully started and loaded the default landing page
3 Browser finished loading
Browser finished loading a specific webpage (cnn.com)
4 Camera app started
Camera app is successfully started and showing preview
5 Camera app picture taken
Camera app has successfully taken a picture
6 Gallery app started
Gallery app is successfully started
7 Media player app started
Media player app is successfully started
8 Media player app finished playback
Media player app has successfully finished playing back an example video.


The implementation uses autopilot to drive the interface of multiple
applications and at some given events runs `smem` to gather memory
usage information.

Please find below a list of each event with a small description of
when the measurement happens and the code that implements the actions
to trigger the event:

- Browser started: the measurement happens when the browser has launched
        browser = BrowserApp(self)
        with self.smem.probe('Browser started'):
            browser.launch()
            self.smem.pids.append(browser.app.pid)

- Browser finished loading: the measurement happens when a given
webpage has been loaded (load progress set to 100%)
        with self.smem.probe('Browser finished loading'):
            url = 'https://launchpad.net/'
            browser.go_to_url(url)
            browser.assert_page_eventually_loaded(url)

- Camera app started: the measurement happens when the camera
application is launched
        camera = CameraApp(self)
        with self.smem.probe('Camera app started'):
            camera.launch()
            self.smem.pids.append(camera.app.pid)

- Camera app picture taken: the measurement happens when the picture
shows up in the filesystem
        with self.smem.probe('Camera app picture taken'):
            camera.take_picture()


- Gallery app started: the measurement happens when the gallery
application is launched
        with self.smem.probe('Gallery app started'):
            gallery = GalleryApp(self)
            gallery.launch()
            self.smem.pids.append(gallery.app.pid)

- Media player app started: the measurement happens when the media
player is launched
        with self.smem.probe('Media player app started'):
            media_player = MediaPlayerApp(self)
            media_player.launch()
            self.smem.pids.append(media_player.app.pid)


- Media player app finished playback: the measurement happens when the
media player finishes playing a video file (time line widget value set
to its maximum value)
        with self.smem.probe('Media player app finished playback'):
            media_player = MediaPlayerApp(self)
            media_player.launch('small.mp4')
            self.smem.pids.append(media_player.app.pid)
            media_player.assert_playback_finished()

Regarding the measurement timing, note that the detection of some of
the events above (page loaded, video file played) are based on
autopilot Eventually matcher. This matcher checks that a given
condition happens every second to succeed or fails in case of a
timeout. Hence, the measurement doesn't really happen exactly when the
event happens, but when the assertion succeeds which can be up to a
second later.

Best regards,
    Javier




Follow ups