Optimizing API Testing: Automating Bulk Login Interface Testing

In the realm of API testing, a strategic approach involves leveraging automation to conduct comprehensive tests on login interfaces. Rather than manually repeating test steps, automation streamlines the process by utilizing a user listing API to gather a batch of email and password combinations. These credentials are then systematically applied in bulk to verify the login interface's functionality across a spectrum of scenarios, ensuring robust performance and reliability.

Preparatory Steps

We start off by setting up two APIs in advance.

1.User Listing API

https://mock.echoapi.com/mock/306931d1b864000/userlist?echoapi_id=6c5e20435f000

The response from this API includes:

{
  "data": {
    "errcode": 0,
    "errstr": "success",
    "list": [
      {
        "email": "test01@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test02@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test03@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test04@echoapi.cn",
        "password": "111111"
      },
      {
        "email": "test05@echoapi.cn",
        "password": "222222"
      }
    ]
  }
}

2.Login API

https://mock.echoapi.com/mock/306931d1b864000/login?echoapi_id=6c77dfd35f000

The successful response from this API includes:


{
  "errcode": 0,
  "errstr": "success",
  "data": {
    "userId": "9252A47b-0E3B-98d5-DfAC-526b87A5f14f",
    "email": "test01@echoapi.cn",
    "nickName": "Alex"
  }
}

The failure response from this endpoint includes:

{
  "errcode": 11001,
  "errstr": "User account not found",
  "data": []
}

Setting Up Automated Test Scenarios

Now, we will leverage the aforementioned APIs to achieve our primary objective: executing test data in bulk to validate the functionality of the login interface.

Establishing a New Test Scenario

Access EchoAPI, proceed to Automated Testing -> Create New Case, and label it as: "Bulk Login Testing."

image.png

Defining Test Scenario Steps

Let's outline the test steps for this scenario.

image.png

In the outlined process, our initial action involves integrating a user listing step by seamlessly incorporating the established user listing endpoint into our testing framework.

Next, we introduced a loop controller, and the specific configuration details for this loop controller are as follows:

image.png

As illustrated in the diagram, we decided to iterate over the outcomes of the preceding step using a loop controller. Leveraging a JSONPath expression, we successfully extracted arrays directly from the response results, as demonstrated below:

[
      {
        "email": "test01@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test02@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test03@echoapi.cn",
        "password": "123456"
      },
      {
        "email": "test04@echoapi.cn",
        "password": "111111"
      },
      {
        "email": "test05@echoapi.cn",
        "password": "222222"
      }
    ]

This setup enables us to directly employ the array as our test data.

Lastly, within the loop controller, we added a sub-action: the inclusion of the user login API.

image.png

Moreover, the input parameters for this endpoint utilize variables passed from the above-mentioned array test data.

image.png

With this, a comprehensive automated test case configuration is complete. Our login interface will sequentially use the email and password data retrieved from the user listing API for bulk testing, culminating in test results.

image.png

Additionally, we can incorporate an assertion within the login interface to verify if the response aligns with our expectations.

image.png

Absolutely, apart from the showcased method of utilizing the outcomes of a previous endpoint for looping test data, we offer multiple alternative approaches for providing test data, as illustrated in the image below:

image.png

These methods include:

  • Directly uploading test data in CSV format
  • Employing variables as test data
  • Inputting fixed values as test data, and more

Conclusion

In summary, when configuring automated test cases, we can leverage various techniques to provide test data effectively. These methods range from uploading CSV files directly to utilizing variables or fixed values as test data inputs. By employing these diverse approaches, we enhance the flexibility and robustness of our automated testing procedures, ensuring comprehensive coverage and accurate validation of system functionalities.