Herramientas de usuario

Herramientas del sitio


fw:locust

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:locust [2014/08/08 09:02]
alfred [The TaskSet class]
fw:locust [2020/05/09 09:25] (actual)
Línea 2: Línea 2:
 Is a load testing tool in which you define user behaviour and the system launches a lot of non-real users accessing your web page. Is a load testing tool in which you define user behaviour and the system launches a lot of non-real users accessing your web page.
  
 +  * Docs: [[http://​docs.locust.io/​en/​latest/​]]
 ===== Basic things ===== ===== Basic things =====
 ==== Install ==== ==== Install ====
Línea 18: Línea 19:
   * ''​host'',​ you can specify it on the command line using the –host option. It tells the host to be loaded.   * ''​host'',​ you can specify it on the command line using the –host option. It tells the host to be loaded.
   * ''​weight''​ tells the frequency of use, for example, ''​WebUserLocust''​ will be executed three times ''​MobileUserLocust''​.   * ''​weight''​ tells the frequency of use, for example, ''​WebUserLocust''​ will be executed three times ''​MobileUserLocust''​.
-<​code>​+<​code ​python>
 class WebUserLocust(Locust):​ class WebUserLocust(Locust):​
     weight = 3     weight = 3
Línea 57: Línea 58:
 </​code>​ </​code>​
 Is the same than... Is the same than...
-<​code>​+<​code ​python>
 from locust import HttpLocust, TaskSet, task from locust import HttpLocust, TaskSet, task
  
Línea 118: Línea 119:
 ==== The TaskSet class ==== ==== The TaskSet class ====
 === Declaring tasks with the task decorator === === Declaring tasks with the task decorator ===
-<​code>​+<​code ​python>
 from locust import Locust, TaskSet, task from locust import Locust, TaskSet, task
  
Línea 130: Línea 131:
 </​code>​ </​code>​
 Or defining weight (task2 will be executed twice than task): Or defining weight (task2 will be executed twice than task):
-<​code>​+<​code ​python>
 from locust import Locust, TaskSet, task from locust import Locust, TaskSet, task
  
Línea 147: Línea 148:
 class MyLocust(Locust):​ class MyLocust(Locust):​
     task_set = MyTaskSet     task_set = MyTaskSet
 +</​code>​
 +
 +=== Set an dictionary to tasks attribute ===
 +The next dictionary will assign two tasks, each one with their weight.
 +<code python>
 +class MyTaskSet(TaskSet):​
 +    tasks = {my_task: 3, another_task:​1}
 +</​code>​
 +
 +=== The on_start function ===
 +A TaskSet class can declare an on_start function. That function is called when a simulated user starts executing tasks in that TaskSet.
 +
 +=== Nesting TaskSets ===
 +We can define a ''​TaskSet''​ as a task. Then it will represent a group of sub-task which are executed in that way. 
 +
 +It could be useful to represent a user that makes actions over the web (like enter in a web, then browse films and watch one, then navigate in the blog and comment and comment again, then navigate again, then browse films...). ​
 +
 +A nested class set could call the ''​self.interrupt()''​ function. It interrupts the action in that class set.
 +
 +=== Nested sub-tasks examples ===
 +
 +<code python>
 +class ForumPage(TaskSet):​
 +    @task(20)
 +    def read_thread(self):​
 +        pass
 +
 +    @task(1)
 +    def new_thread(self):​
 +        pass
 +
 +    @task(5)
 +    def stop(self):
 +        self.interrupt()
 +
 +class UserBehaviour(TaskSet):​
 +    tasks = {ForumPage:​10}
 +
 +    @task
 +    def index(self):​
 +        pass
 +</​code>​
 +<code python>
 +class MyTaskSet(TaskSet):​
 +    @task
 +    class SubTaskSet(TaskSet):​
 +        @task
 +        def my_task(self):​
 +            pass
 </​code>​ </​code>​
 ==== Hacer nuestro propio cliente ==== ==== Hacer nuestro propio cliente ====
fw/locust.1407488533.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)