Skip to main content

Test suite for energy consumption

Project description

[![Build Status](https://travis-ci.org/TQRG/physalia.svg?branch=master)](https://travis-ci.org/TQRG/physalia)
[![PyPI version](https://badge.fury.io/py/physalia.svg)](https://badge.fury.io/py/physalia)
[![PyPI downloads](https://img.shields.io/pypi/d/physalia.svg)](https://pypi.python.org/pypi/physalia)
[![PyPI status](https://img.shields.io/pypi/status/physalia.svg)](https://pypi.python.org/pypi/physalia)
[![Code Health](https://landscape.io/github/TQRG/physalia/master/landscape.svg?style=flat)](https://landscape.io/github/TQRG/physalia/master)


# Physalia

Energy measurement framework for Mobile Apps.

More info and documentation in the [website](https://tqrg.github.io/physalia/).

## Install

```
$ pip install https://github.com/luiscruz/PyMonsoon
$ pip install physalia
```

## Example

The simplest way to measure something:

```
from physalia.power_meters import MonsoonPowerMeter
from time import sleep

# change voltage and serial number accordingly:
power_meter = MonsoonPowerMeter(voltage=3.8, serial=12886)
power_meter.start()
sleep(2) # some work
energy_consumption, duration, error_flag = power_meter.stop()
```

Several things need to be done to make sure we can measure energy consumption in Android devices (e.g., setup WiFi control and disable USB).
Physalia takes care of that already:



````
from physalia.power_meters import MonsoonPowerMeter
from physalia.energy_profiler import AndroidUseCase
from time import sleep

# change voltage and serial number accordingly:
power_meter = MonsoonPowerMeter(voltage=3.8, serial=12886)

def run(usecase):
sleep(2) # some work

use_case = AndroidUseCase(
'login',
'path/to/apk',
'com.test.app',
'0.0',
prepare=None,
run=run,
cleanup=None
)
measurement = use_case.run(power_meter=power_meter)
print(measurement)
````

## Contributing

Please help us improve this library!

If you have ideas for new features or anything behaves unexpectedly please report an issue.

If you find an issue you can actually help fixing please make a pull request of your code.

### Running tests

To run all tests and checks locally run:

`$ detox -e py27,py36`

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

physalia-0.0.1.dev122.tar.gz (7.3 MB view details)

Uploaded Source

File details

Details for the file physalia-0.0.1.dev122.tar.gz.

File metadata

  • Download URL: physalia-0.0.1.dev122.tar.gz
  • Upload date:
  • Size: 7.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.8.1 pkginfo/1.4.1 requests/2.9.1 setuptools/1.1.6 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.10 Darwin/15.6.0

File hashes

Hashes for physalia-0.0.1.dev122.tar.gz
Algorithm Hash digest
SHA256 5bad7ba0a4e623938c097e14917dc23918e95257a85a9e725f81d1276863fa5d
MD5 a6e6e3524ce20dfa9f69df7d98dc460f
BLAKE2b-256 f4b6673abab6f49cf1b68bf7dfdc9f9b9c66450384d368f3cf597c6a125d8762

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page