【问题标题】:Posting dynamic values in Locust在 Locust 中发布动态值
【发布时间】:2016-02-28 03:25:59
【问题描述】:

我有一个应用程序,我正在尝试使用 Locust 进行负载测试。如果我事先知道帖子的参数,我可以将它们添加到帖子中并且效果很好:

self.client.post("/Login", {"Username":"user", "Password":"a"})

该应用程序使用了一堆隐藏字段,这些字段会在页面以交互方式发布时发送。这些字段的内容是动态的,由服务器在运行时分配以管理会话等。例如

<input type="hidden" name="$$submitid" value="view:xid1:xid2:xid143:xid358">

有没有办法可以将这些添加到我的帖子数据中?我知道隐藏输入的名称。

【问题讨论】:

    标签: python locust


    【解决方案1】:

    您编写了一个函数来使用PyQuery 提取此数据。您只需要在发送发布请求之前调用它。如果你想创建一堆数据,你可以在 on_start 函数中调用它,将它们存储在一个数组中,然后在任务中使用它。请看下面的例子:

    from locust import HttpLocust, TaskSet, task
    from pyquery import PyQuery
    
    class UserBehaviour(TaskSet):
    
        def get_data(self, url, locator):
            data = []
            request = self.client.get(url)
    
            pq = PyQuery(request.content)
            link_elements = pq(locator)
            for link in link_elements:
                if key in link.attrib and "http" not in link.attrib[key]:
                    data.append(link.attrib[key])
    
            return data
    
        @task
        def test_get_thing(self):
            data_ = self.get_data("/url/to/send/request", "#review-ul > li > div > a", "href")
            self.client.post("url", data = data_)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 2016-01-20
      相关资源
      最近更新 更多