npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

initiate-test

v1.4.0

Published

create framework structure directories and files of automation test project of robot-framework

Downloads

185

Readme

Robot Project Initiator

An npm CLI tool for initializing RobotFramework-based automation test projects swiftly and efficiently.

Installation

npm i -g initiate-test

Quick Start

initiate-test <project-name> <project-type>
  • Replace with your preferred name.
  • Replace with one of the following choices: [app, web, api]

Advanced Setup

initiate-test

Answer a few questions:

  • Project name
  • Project type (app, web, or api)
  • Author name
  • Environments (e.g., env1 env2, env3, separated by spaces)
  • Credentials needed? (yes/no)

Creating Test Suites

Post-initiation, generate multiple suite files within the tests directory effortlessly. Execute one of these commands:

initiate-test --suite 01_users_test --suite 02_productions_test --suite 03_collections_test

or

initiate-test --suite "01_users_test 02_productions_test 03_collections_test"
  • -s serves as a shorthand for --suite.

The command generates suite files in the tests directory, each initialized with template content. README.md is updated to include these suites and their respective tags.


Automated Testing Plan Importer

Seamlessly import a testing plan, converting it into suites and test cases within each suite:

initiate-test --plan path/of/plan/file.xlsx
  • -p is a shorthand for --plan.
  • Supported file formats: xlsx, csv, tsv.

Plan Structure Example

| ID | TEST CASE | SUITE | | ----- | ------------------------------------------ | -------------- | | TC-01 | Login With Invalid Username Should Fail | Invalid Login | | TC-02 | Signup Without Username Should Fail | Invalid Signup | | TC-03 | Login With Valid Credintial Should Success | Valid Login |

  • Notice that header of table should be UPPERCASE.
  • Suite values could be path like "./tests/login/invalid login". The path and file will be created togather.

Updating the README File

To incorporate new suites, tags, and additional elements manually, utilize the command initiate-test -u or initiate-test --update. This command efficiently updates the README, seamlessly adding all recently included directories, suites, and tags. It also integrates essential information such as author details, email, repository, and project name, ensuring a comprehensive update to the documentation.


Built Common Keywords

This section includes various keyword sets categorized by project type: API, App, and Web. Each set contains keywords performing specific actions or validations tailored for respective project types.

API Project Keywords

The API project keywords cover a range of functionalities from making HTTP requests with various configurations to validating responses and text patterns.

| Keyword Name | Description | | -------------------------------------- | -------------------------------------------------------------- | | Create Headers | Creates headers for requests | | Delete With Body | Performs a DELETE request with a body | | Delete With Body And Invalid Token | Performs a DELETE request with a body and an invalid token | | Delete With Body And No Headers | Performs a DELETE request with a body and no headers | | Delete With Params | Performs a DELETE request with parameters | | Delete With Params And Invalid Token | Performs a DELETE request with parameters and an invalid token | | Delete With Params And No Headers | Performs a DELETE request with parameters and no headers | | Delete Without Params | Performs a DELETE request without parameters | | Expect 500 Exception Response | Validates a 500 status code exception response | | Get Variable Type | Retrieves the type of a variable | | Post Request With Invalid Token | Validates a POST request with an invalid token | | Post Request Without Body | Validates a POST request without a body | | Post Request Without Token | Validates a POST request without a token | | Post With Body | Performs a POST request with a body | | Post With Body And Invalid Token | Performs a POST request with a body and an invalid token | | Post With Body And No Headers | Performs a POST request with a body and no headers | | Post With Body Then Validate | Validates a POST request with a body | | Post With Params | Performs a POST request with parameters | | Post With Params Then Validate | Validates a POST request with parameters | | Post Without Body | Performs a POST request without a body | | Post Without Body And Invalid Token | Performs a POST request without a body and an invalid token | | Post Without Body And No Headers | Performs a POST request without a body and no headers | | Post Without Body Then Validate | Validates a POST request without a body | | Put With Body | Performs a PUT request with a body | | Put With Body And Invalid Token | Performs a PUT request with a body and an invalid token | | Put With Body And No Headers | Performs a PUT request with a body and no headers | | Query Data And Validate | Validates queried data | | Query With Body | Performs a query with a body | | Query With Body And Invalid Token | Performs a query with a body and an invalid token | | Query With Body And No Headers | Performs a query with a body and no headers | | Query With Body Then Validate | Validates a query with a body | | Query With Params | Performs a query with parameters | | Query With Params And Invalid Token | Performs a query with parameters and an invalid token | | Query With Params And No Headers | Performs a query with parameters and no headers | | Query With Params Then Validate | Validates a query with parameters | | Query Without Params | Performs a query without parameters | | Query Without Params And Invalid Token | Query without parameters with an invalid token | | Query Without Params And No Headers | Query without parameters and no headers | | Response Should Be 400 | Validates a response with a status code 400 | | Response Should Be Success | Validates a successful response | | Response Should Be Unauthorized 401 | Validates a response with a status code 401 | | Startup The Automation Test | Initializes test automation | | Text Should Be Arabic | Validates text to be in Arabic characters | | Text Should Be English | Validates text to be in English characters |

App Project Keywords

Keywords in the App project encompass interactions with mobile applications, such as swiping gestures, element verification, waiting for progress bars, and text validation.

| Keyword Name | Description | | ----------------------------------- | ----------------------------------------------------- | | Click Coordinates | Clicks on the specified coordinates within an element | | Get Variable Type | Retrieves the type of a variable | | Open The App | Opens the application with specified parameters | | Pick Random Element | Selects a random element from a set of elements | | Scroll Down Until Get Element | Scrolls down until a specified element is found | | Scroll Up Until Get Element | Scrolls up until a specified element is found | | Swipe Down | Performs a swipe gesture downwards | | Swipe Left To Right | Performs a swipe gesture from left to right | | Swipe Right To Left | Performs a swipe gesture from right to left | | Swipe Up | Performs a swipe gesture upwards | | Text Should Be Arabic | Validates text to be in Arabic characters | | Text Should Be English | Validates text to be in English characters | | Verify ${page_title} Page Is Loaded | Verifies if a specified page is loaded | | Waiting For Progress Bar | Waits until the progress bar element is visible | | Waiting For Progress Bar Disappear | Waits until the progress bar element disappears |

Web Project Keywords

Keywords for web projects facilitate actions like navigating to web pages, handling sessions, scrolling until specific elements become visible or invisible, verifying elements' classes, and more.

| Keyword Name | Description | | ------------------------------------------- | ------------------------------------------------------------------ | | Click Coordinates | Clicks on specific coordinates within an element | | Convert Time to Seconds | Converts time format (HH:MM:SS) to total seconds | | Create List of Text from Elements | Gathers text from elements and creates a list | | Create Screenshots Directory | Creates a directory for storing screenshots | | Element Should Be Invisible In The Viewport | Checks if an element is not visible in the viewport | | Element Should Be Visible In The Viewport | Checks if an element is visible in the viewport | | Ensure Element Does Not Have Class | Ensures that an element does not have a specified class | | Ensure Element Has Class | Ensures that an element has a specified class | | Get Child Webelements | Retrieves child elements of a specified element | | Get Parent Webelement | Retrieves the parent element of a specified element | | Get Variable Type | Retrieves the type of a variable | | Go To Website URL | Navigates to a specified website URL | | Log Warning If Test Failed | Logs a warning message if a test fails | | Open a New Session Unless Found One | Opens a new session or proceeds if a session already exists | | Open Browser To Login Page | Opens the browser and navigates to the login page | | Pick Random Element | Selects a random element | | Run Login Process | Executes the login process | | Scroll Until Element Invisible | Scrolls until a specified element becomes invisible on the screen | | Scroll Until Element Visible | Scrolls until a specified element becomes visible on the screen | | Start Test Up | Initiates the test process, including login and verification steps | | Start again from beginning | Restarts the process based on specific conditions | | Text Should Be Arabic | Validates text to be in Arabic characters | | Text Should Be English | Validates text to be in English characters | | Wait Until Element Not Found on Screen | Waits until a specified element is not found on the screen |


These keywords are designed to streamline automation efforts across different project types and can be updated or enhanced to accommodate specific project requirements.


Future Release

Expect a feature to generate test cases, eliminating the need for manual creation. Stay tuned for updates and enhancements.