Skip to main content

Python package and CLI application to measure Power BI reports loading capacity, using different filters and parameters.

Project description

PyPI - Python Version PyPI - Version

pbi-load-test

Python package and CLI application to measure Power BI reports loading capacity, using different filters and parameters.

It simulates a realistic set of user actions such as changing slicers, filters (soon), bookmarks (soon)

[Prerequisites](#prerequisites) | [Installation](#installation) | [Configuration](#configuration) | [Example](#example)

Prerequisites

  • It requires and Azure AD login method. Ensure you have Azure CLI installed locally and authentificate (az login) in order to generate a token easily. Soon:

[!NOTE]

  • Soon: the package will open a Window to authentificate if the Azure login has not be installed
  • Soon: the package will be able to load Service Principal to to the test (Tenant ID, Client ID and Client Secret)
  • This package is based on Selenium python package. It will open a Chromium window to launch the test. In any case, it may require the Chromium driver locally. The latest versions for each OS can be found here.

Installation

With pip

$ pip install pbi-load-test

And to test the installation

$ pbi-load-test --version
0.1.1a1

with poetry

$ poetry add pbi-load-test

And to test the installation

$ poetry run pbi-load-test --version
0.1.1a1

Configuration

The load test is configurated through a config.yaml file which should be located in the current working directory.

# authentification: oauth
workspace: ... # PBI Workspace Name
report: ... # Report name
page: ... # Page name

slicers:
  - table: ... # Table name from dataset which contains the column to filter on
    column: ... # The column name containing the values to filter on
    values:
      - ... # The value to filter on
      - ...

[!NOTE] For the moment, only slicers are usable to filter on. Later, filters will be available. Also, one slicer can be used in this first version. In the future, the tool will be able to iterate between slicers list and create combinations between slicer and filter values.

Example

It ensures that a config.yaml file exists in the current working directory

[!NOTE]
The package will in the future be able to parse config.yaml file from different project through the CLI application.

❯ poetry run pbi-load-test run

CORE - MARKETING [DEV]
SFE Country Dashboard TMDL
Activity Field Days
Workspace ID: 310d9fbb-1474-4939-bcb8-669a536ec959
Report ID: c89485c6-e0c3-4715-a710-ddd450491a9a
groups/310d9fbb-1474-4939-bcb8-669a536ec959/reports/c89485c6-e0c3-4715-a710-ddd450491a9a/pages
Page ID: ReportSectioncbd8077dfb6a167ccb5e
Duration: 30.085
Press Enter to continue...
Capture_d’écran_2023-09-04_à_08_32_04_bis

After the test, all created files will be removed.

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

pbi_load_test-0.1.1a1.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

pbi_load_test-0.1.1a1-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

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