Locust性能测试2--登录示例
无论是做接口自动化还是做压测,解决了登录就离成功进步了一大半,下面做个简单的登录案例,后续再说下数据依赖及参数化等问题
1. 登录
- 登录示例
from locust import HttpUser, task, between
USER_CREDENTIALS = [
("login1", "pwd1"),
("login2", "pwd2"),
("login3", "pwd3"),
] # 登录账户
class LoginDemo(HttpUser):
wait_time = between(2, 5) # 模拟用户等待2到5s然后执行
@task(1)
def on_start(self): # 任务开始时准备(开始肯定是要登录了)
header = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/83.0.4103.61 Safari/537.36 "
} # 请求头
if len(USER_CREDENTIALS) > 0:
user, pwd = USER_CREDENTIALS.pop() # 取出账户名密码
r_post = self.client.post("user/login/", {
"token": 'TOKEN', # TOKEN
"username": user, # 用户名
"password": pwd, # 密码
"next": ""
}, header=header
)
assert r_post.status_code == 200 # 断言请求返回200
print(r_post.status_code, r_post.text[:1000]) # 打印状态码及返回text
@task(2)
def view_index(self):
print('访问首页')
r = self.client.get("/index/")
print(r.status_code)
@task(6)
def view_tag(self):
print('访问标签页')
r = self.client.get("/tag/")
print(r.status_code)
if __name__ == "__main__":
import os
os.system("locust -f demo.py --host=URL") # 需要测试的地址
task后面的意思可以理解为权重,在上面的示例中,view_tag被选择为view_index的几率是两倍
2.Task的另外使用方式
from locust import User, constant
def task_one(l):
print('https://yiluotalk.com/')
class MyUser(User):
tasks = [task_one]
wait_time = constant(1)
if __name__ == "__main__":
import os
os.system("locust -f demo.py ")
- 执行脚本
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
https://yiluotalk.com/
- 如果是多个任务的话
task = [my_task, my_task, my_task, another_task]
3. 小结
如果很熟悉request库的话,基本没有上手的难度
https://yiluotalk.com/2019/12/19/Python%20requests%E5%BA%93(%E4%B8%80)/
Locust性能测试2--登录示例的更多相关文章
- Locust性能测试2-先登录场景案例
前言 有很多网站不登录的话,是无法访问到里面的页面的,这就需要先登录了 实现场景:先登录(只登录一次),然后访问页面->我的地盘页->产品页->项目页 官方案例 下面是一个简单的lo ...
- Locust性能测试
https://www.cnblogs.com/yoyoketang/p/9638151.html https://www.cnblogs.com/yoyoketang/p/9642242.html ...
- Locust性能测试4-参数关联
前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...
- Locust性能测试_参数关联
前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...
- Locust性能测试_先登录场景案例
前言 有很多网站不登录的话,是无法访问到里面的页面的,这就需要先登录了实现场景:先登录(只登录一次),然后访问页面->我的地盘页->产品页->项目页 官方案例 下面是一个简单的loc ...
- Locust性能测试工具核心技术@task和@events
Tasks和Events是Locust性能测试工具的核心技术,有了它们,Locust才能称得上是一个性能工具. Tasks 从上篇文章知道,locustfile里面必须要有一个类,继承User类,当性 ...
- Python Locust性能测试框架实践
[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- python locust 性能测试:locust安装和一些参数介绍
安装参考 https://www.cnblogs.com/fnng/p/6081798.html <虫师大大的,很详细> ps:python3.7暂不支持locust:python3安装建 ...
随机推荐
- vue同时安装element ui跟 vant
记一个卡了我比较久的问题,之前弄的心态爆炸各种问题. 现在来记录一下,首先我vant是已经安装成功了的. 然后引入element ui npm i element-ui -S 接着按需引入,安装插件 ...
- redis实操-sentinel
本文主要记录一些操作步骤,作为自己学习的一个记录,也供虚拟机上学习redis的人参考. 实操篇,可以参考 http://redis.cn/ 主从复制实操 在test目录下新建配置进行练习 1.mkdi ...
- 使用 you-get 下载免费电影或电视剧
安装 you-get 和 ffmpeg ffmpeg 主要是下载之后,合并音频和视频 pip install you-get -i http://pypi.douban.com/simple/ --t ...
- PHP connection_status() 函数
实例 返回连接状态: <?phpswitch (connection_status()){高佣联盟 www.cgewang.comcase CONNECTION_NORMAL:$txt = 'C ...
- layui实现图片上传
页面代码: <style> .uploadImgBtn2{ width: 120px; height: 92px; cursor: pointer; position: relative; ...
- Java不会被淘汰的12个原因
如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念.犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值.而Java作为现代程序员的中坚力量在这点上或许会成为下一个COBOL. ...
- Linux的VMWare中Centos7用户和用户管理三个系统文件(/etc/passwd-shadow-group解读)和批量创建用户user及用户工作环境path
Linux 用户和用户组管理 用户工作环境PATH Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用 ...
- Android 布局的一些控件的补充和布局的补充(今儿没课)
前面写的博客可能会有点乱: 1,是不太会排版. 2,就是我一边看书,一边听学长讲课,所以有的知识就融入进去了,我写的都是自己的意见和理解,大家取我精华,弃我糟粕哈. 今天是书上的内容,主要讲布局的,一 ...
- 打开桌面的Eclipse闪退,打不开
参考了网上说的方法: .在C:/WINDOWS/system32 系统文件夹中ctrl+F 然后搜索java.exe,如果存在java.exe, javaw.exe etc.全部删除. 2.内存不足, ...
- “随手记”开发记录day07
今天完成了关于我们页面中的相关信息,由于之前没有做过这个东西,只想着用一个view解决 可是发现我们整的太简单了,还是太年轻,最后想出来要跟java代码一起解决这个问题, 效果