漫游测试之性能测试(3.3.4.2 Locust中的检查点)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/womengdoushizhongguo/article/details/82530985

3.3.4.2 Locust中的检查点
方法一:通过服务端返回状态码来检查,类似Loadrunner中的LR_AUTO
通用模式:
With client.get(url,body,catch_response= True) as response:
if response.status_code == 200:
        response.success()
#    加入其它返回或打印值信息
else:
response.failure('return is not 200')

详细示例:
from locust import HttpLocust, TaskSet, task

def md5(str):
    import hashlib
    m = hashlib.md5()
    m.update(str)
    return m.hexdigest()

class UserBehavior(TaskSet):
    # getOpenId = ''
    # getAccessToken = ''
    loginTag = {}

    def on_start(self):
        """ on_start is called when a locust start before any task is scheduled"""
        self.loginTag = self.login()


    def login(self):
        """ post login ,always the first step. """
        postLoginBody = {"clientId":"xxxx",\
                                         "consideringTheReusability":"true",
                                         "password":md5('q123456'),\
                                         "grantType":"password",\
                                         "service":"authorize",\
                                         "version":"1.0.0.150109-PRD",\
                                         "clientSecret":"xx3182A99D24A874B",\
                                         "username":'[email protected]'}
        with self.client.post('/oauth?service=authorize&version=', postLoginBody, catch_response= True) as response:
            if response.status_code == 400:
                response.success()
                rc = response.json()['data']
                print 'request = %s, request body = %s, response =%s', ('/oauth?service=authorize&version=', postLoginBody, rc)
                return rc
            else:
                response.failure('return is not 400')
        # return rc

    @task(1)
    def searchDevice(self):
        # loginTag = self.login()
        if len(self.loginTag) > 0:
            searchBody = {"clientId": "xxx", 'openId' : self.loginTag['openId'], 'accessToken': self.loginTag['accessToken']}

            response = self.client.get('/gateway?service=user_v2_0.list&version=', \
                            params = searchBody)

            print 'request = %s, request body = %s, response =%s', ('/gateway?service=user_v2_0.list&version=', searchBody, response.content)

class ApiFosUser(HttpLocust):
    task_set = UserBehavior
    host = 'http://10.16.40.11:5902'
    min_wait = 0
max_wait = 0

执行结果

在Failures中打印出自定义的错误提示语


Exceptions中打印出错误的代码


方法二:在状态码的基础上自定义检查的内容,类似Loadrunner中的web_reg_find

通用模式:
With client.get(url,body,catch_response= True) as response:
if response.status_code == 200:
if response.json()['errorCode'] == '':
            response.success()
#    返回相关值信息
else:
            response.failure('response value is not right')
else:
response.failure('return is not 200')

详细示例:
from locust import HttpLocust, TaskSet, task

def md5(str):
    import hashlib
    m = hashlib.md5()
    m.update(str)
    return m.hexdigest()

class UserBehavior(TaskSet):
    # getOpenId = ''
    # getAccessToken = ''
    loginTag = {}

    def on_start(self):
        """ on_start is called when a locust start before any task is scheduled"""
        self.loginTag = self.login()


    def login(self):
        """ post login ,always the first step. """
        postLoginBody = {"clientId":"xxx",\
                                         "consideringTheReusability":"true",
                                         "password":md5('q123456'),\
                                         "grantType":"password",\
                                         "service":"authorize",\
                                         "version":"1.0.0.150109-PRD",\
                                         "clientSecret":"xA99D24A874B",\
                                         "username":'[email protected]'}
        with self.client.post('/oauth?service=authorize&version=', postLoginBody, catch_response= True) as response:
            if response.status_code == 200:
                rc = response.json()['data']
                if response.json()['errorCode'] == '123':
                    response.success()
                    return rc
                else:
                    response.failure('response value is not right')
                print 'request = %s, request body = %s, response =%s', ('/oauth?service=authorize&version=', postLoginBody, rc)
            else:
                response.failure('return is not 400')
        # return rc

    @task(1)
    def searchDevice(self):
        # loginTag = self.login()
        if self.loginTag:
            searchBody = {"clientId": "xx", 'openId' : self.loginTag['openId'], 'accessToken': self.loginTag['accessToken']}

            response = self.client.get('/gateway?service=user_v2_0.list&version=', \
                            params = searchBody)

            print 'request = %s, request body = %s, response =%s', ('/gateway?service=user_ipc_setting_v2_0.list&version=', searchBody, response.content)

class ApiFosUser(HttpLocust):
    task_set = UserBehavior
    host = 'http://10.16.40.11:59002'
    min_wait = 0
    max_wait = 0

执行结果

猜你喜欢

转载自blog.csdn.net/womengdoushizhongguo/article/details/82530985