startakovsky / SimpleLoadTest

A simple load test script with python gevent and requests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Install requirements

$ pip install gevent
$ pip install requests

make GET load test

Here is a HTTP GET example.

GET /WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=string HTTP/1.1
Host: webservice.webxml.com.cn

And its response:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>

To test this webservice, we can write test like this:

def get_getWeatherbyCityName(concurrent_num):
    url = HOST + "/WebServices/WeatherWebService.asmx/getWeatherbyCityName"
    params = {
        'theCityName': ("广州","深圳"),
    }
    reqs = make_data(params)
    batch_request(url, reqs, method='GET', workers_num=concurrent_num)

make POST load test

Here is a HTTP POST example.

POST /WebServices/WeatherWebService.asmx/getWeatherbyCityName HTTP/1.1
Host: webservice.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length

theCityName=string

And its response:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>

To test this webservice, we can write test like this:

def post_getWeatherbyCityName(concurrent_num):
    url = HOST + "/WebServices/WeatherWebService.asmx/getWeatherbyCityName"
    params = {
        'theCityName': ("广州","深圳"),
    }
    reqs = make_data(params)
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    batch_request(url, reqs, headers, method='POST', workers_num=concurrent_num)

Run tests

Once testcase.py is done, start rolling!

$ python testcase.py

About

A simple load test script with python gevent and requests.

License:MIT License


Languages

Language:Python 100.0%