1. 程式人生 > >登錄案例locustfile.py

登錄案例locustfile.py

odi wow pan sta 自己 headers erb dex tar

# 保存為locustfile.py
# coding=utf-8
from locust import HttpLocust, TaskSet, task

‘‘‘
實現場景:先登錄(只登錄一次),然後訪問->我的地盤頁->產品頁->項目頁
訪問我的地盤頁面權重為2,產品頁和項目頁權重各為1
‘‘‘

class UserBehavior(TaskSet):
    ‘‘‘蝗蟲行為類‘‘‘
    def _login(self):
        ‘‘‘登錄方法‘‘‘
        # host = ‘http://192.168.x.xx:80‘  # 禪道的服務器地
        loginUrl ="/zentao/user-login.html/"
        h = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
            "Content-Type": "application/x-www-form-urlencoded",
            }
        body = {"account": "運營",  # 你自己的賬號
                "password": "******",    # 你自己的密碼
                "keepLogin[]": "on",
                "referer": "/zentao/my/"
                }
        r = self.client.post(loginUrl, data=body, headers=h)
        print(r.text)
        assert "parent.location=‘/zentao/index.html‘" in r.text

    def on_start(self):
        ‘‘‘任務開始準備工作:只登錄一次‘‘‘
        self._login()

    # 任務1-我的地盤
    @task(2)
    def zentao_my(self):
        print("---訪問頁面-我的地盤---")
        r = self.client.get("/zentao/my/")
        assert "我的地盤" in r.text

    # 任務2-產品頁
    @task(1)
    def zentao_product(self):
        print("---訪問頁面-產品頁---")
        r = self.client.get("/zentao/product-browse.html/")
        assert "需求列表" in r.text

    # 任務3-項目
    @task(1)
    def zentao_prject(self):
        print("---訪問頁面-項目---")
        r = self.client.get("/zentao/project/")
        assert "項目首頁" in r.text


class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 1000
    max_wait = 1000

if __name__ == "__main__":
    import os
    os.system("locust -f locustfile.py --host=http://192.168.x.xx:80")

登錄案例locustfile.py