☕ PostuLatte

PostuLatte is a free and flexible tool for designing and testing web services, using C# scripting for advanced automation. It supports web API testing, reporting, code generation and easy integration with CI/CD. The built-in scheduler automates service testing on a schedule.
PostuLatte also includes a role-based model, enabling efficient management of user access and permissions.
The tool is designed to accelerate development and enhance testing efficiency, providing powerful features for developers.

Get started

To start using PostuLatte with Docker, enter the following command in your terminal:
docker run -d --name PostuLatte -p <host-port>:<container-port> quadbit/postulatte:latest

Example:

Docker
docker run -d --name PostuLatte -p 8080:8080 quadbit/postulatte:latest
Copy

Explanation:

  • d: Runs the container in detached mode (background).
  • -name PostuLatte: Assigns a custom name to the container.
  • p <host-port>:<container-port>: Maps the container's port to the host's port (e.g., 8080:8080).
  • <image-name>: Replace with the name of the PostuLatte Docker image.
After starting the container, open your browser and navigate to http://localhost:<host-port> (e.g., http://localhost:8080) to access PostuLatte.

Extra

Since version 0.9.3, PostuLatte provides a connection to PostgreSQL. To run it in Docker with a PostgreSQL connection, use the following command:
docker
docker run -e PostgresConnection='<CONNECTION STRING>' --name PostuLatte -d -p 8080:8080 quadbit/postulatte:latest
Copy

First launch

Image without caption
Upon the first launch of PostuLatte, the system creates a default administrator account with the username admin and the default password admin. After logging in, it is recommended to change the password for the admin account and create a personal user account.
To do this, after logging in as the admin user, go to the "Manage elements" section.
 Step 1 - Open "Manage elements"
Step 1 - Open "Manage elements"
Step 2 - Add user
Step 2 - Add user
Click "Add User" and fill in the details. When creating users, pay attention to the columns responsible for access management. These are the "Namespaces" and "Permissions" columns.
  • Namespaces - "Namespaces" are the namespaces accessible to the user. To grant access to all namespaces, simply set this field to
  • Permissions - Permissions are an important setting that defines a user's access to various system functionalities.
The following permissions are supported:
  • Permit deleting items – Grants the ability to delete any user data objects.
  • Permit scripting – Grants access to scripting. This permission should only be assigned to trusted and experienced users.
  • Permit testing – Grants the ability to manage tests.
  • Permit editing – Grants the ability to edit any system objects.
  • Permit creating namespaces – Grants the ability to create namespaces.
  • Permit item execution – Grants the ability to execute requests, tests, and other executable elements.
  • Permit testing reports – Grants access to view test reports.
  • Permit edit users – Grants the ability to manage users.
  • Permit edit tokens – Grants the ability to manage tokens.
  • Permit access to the scheduler – Grants access to manage scheduled test runs.
  • Permit access to import/export – Grants the ability to import/export elements.
The settings for the current user will be applied after logging out of the system.
Once the users are configured, you can start working with elements. Elements are user-created content and can include the following types: query templates, test templates, variables, and snippets.
Step 3 - Manage elements
Step 3 - Manage elements
Query template is a pre-filled template for executing an HTTP request. These templates enable you to perform HTTP requests with pre-configured settings, use variables, apply post-processing with scripting, visualize server responses, view outputs, generate curl commands, and much more.
Testing template is a template that contains only the essentials for testing, specifically: testing notes, a scripting tab, and files that can be used in the testing script. PostuLatte uses C# as the scripting language, and execution takes place on the server side. Therefore, it is crucial to grant these permissions only to experienced, trusted personnel.
Query templates can also be created using curl, which is highly convenient when combined with browser development tools. This allows you to copy requests directly and import them into PostuLatte.
Copy as cURL
Copy as cURL
cUrl import in PostuLatte
cUrl import in PostuLatte
Query result
Query result
Variable are user-defined variables that are used in templates and snippets. They can be passed into various parameters of templates. Variables can be defined both in code and through the editor. Variables defined in code using the AddVariable method override global variables defined in the editor and are only active within the current request or test chain. Variables can have the same name, but if they are not separated by namespaces, it can lead to unexpected results. When variables with the same name exist in different namespaces, the principle of polymorphism applies: the test or request will use the value of the variable from the namespace under which the execution is running. This is useful, for example, when running the same automated tests on a schedule for different platforms with different host names — host names can be set in variables with the same name but different namespaces. Access to variables in code is done by the variable name.
Using variables
Using variables
In the current version, variables work as a string type. Due to the strict typing in C#, the value obtained from a variable must be manually converted to the required type by the user. However, we are working on improving the user experience with variables and will add support for different types in the next major update.
Snippet – Snippets are similar to variables in that they allow you to retrieve a value by name from a script. However, unlike variables, access to a snippet can also be made via its PublicID. Additionally, snippets allow you to modify the script's logic using directives. This enables the creation of common functions that can be reused multiple times in tests and requests via directives (e.g., ${Login}).
Moreover, snippets can be used when you want to extract textual data, similar to variables, but with more convenient editing options. For example, this is useful for managing JSON and other long texts (e.g., Snippet("GetTestData")).
Snippet
Snippet
Using snippet
Using snippet

See also

TestingNamespacesSchedulerExamplesTokensReleases

Powered by Notaku