k6创建请求

 k6支持的协议

 

- HTTP/1.1

- HTTP/2

- WebSockets

 

k6 创建请求

 

- get请求

  

```

import http from 'k6/http';

 

export default function () {

  http.get('http://test.k6.io');

}

```

 

- post请求

 

```

import http from 'k6/http';

 

export default function () {

  var url = 'http://test.k6.io/login';

  var payload = JSON.stringify({

    email: 'aaa',

    password: 'bbb',

  });

 

  var params = {

    headers: {

      'Content-Type': 'application/json',

    },

  };

 

  http.post(url, payload, params);

}

```

 

k6 支持的http模块的

- batch(): 并行请求,这个是k6和jmter不一样的地方,Jmter的请求只能是顺序执行,这也是基于VUS和基于线程的区别(当然有人也会把不通的请求放到不通的线程组但这样实现可以,但是从逻辑上讲是不通的)

 

```

import http from 'k6/http';

import { check } from 'k6';

 

export default function() {

  let responses = http.batch([

    ['GET', 'https://test.k6.io', null, { tags: { ctype: 'html' } }],

    [

      'GET',

      'https://test.k6.io/style.css',

      null,

      { tags: { ctype: 'css' } },

    ],

    [

      'GET',

      'https://test.k6.io/images/logo.png',

      null,

      { tags: { ctype: 'images' } },

    ],

  ]);

  check(responses[0], {

    'main page status was 200': res => res.status === 200,

  });

}

```

针对页面来进行的测试

 

### 关于 k6.io 的功能、使用指南以及文档 #### 功能概述 k6是一款基于Go语言构建的现代化负载测试工具,提供了高效的性能测试方案。它的设计目标是通过卓越的开发体验简化复杂的测试流程[^2]。以下是其主要特性: - **强大的负载生成能力**:可以模拟大量并发用户访问系统。 - **脚本即代码**:支持将测试脚本作为代码存储在版本控制系统中,并轻松集成到 CI/CD 流程。 - **内置 JavaScript 引擎**:允许开发者用熟悉的 JS 语法编写测试逻辑,同时享有 Go 提供的高性能。 #### 基本使用方法 对于初学者而言,可以通过简单的命令快速上手 k6 工具。例如,在完成测试脚本 `script.js` 后,可通过以下方式将其结果上传至 k6 Cloud: ```bash k6 run --out cloud script.js ``` 这条命令会执行指定的测试脚本并将数据同步到云端以便进一步分析[^3]。 #### 官方文档与下载地址 如果需要深入学习或者解决特定场景下的问题,则应查阅官方文档获取详尽说明。上述资料提到过当存在更高层次需求时应当转而依赖官方资源寻求解答[^1]。至于安装包本身可以从[k6官网](https://k6.io/)直接找到对应平台最新版链接进行下载。 #### 示例应用案例 - GitHub GraphQL API 负载测试 为了展示其实战价值,这里给出一个针对第三方服务(如GitHub提供的GraphQL接口)实施压力检测的例子。由于此API面向公众开放且拥有完善的描述手册,因此非常适合用来练习创建复杂请求模式包括查询(Query)和变更(Mutation)[^4]: ```javascript import http from 'k6/http'; import { sleep } from 'k6'; export default function () { const url = 'https://api.github.com/graphql'; const payload = JSON.stringify({ query: '{ viewer { login }}', }); const params = { headers: { 'Authorization': 'Bearer YOUR_PERSONAL_ACCESS_TOKEN', // 替换为实际token 'Content-Type': 'application/json' } }; let res = http.post(url, payload, params); console.log(res.body); sleep(1); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值