8000 GitHub - avitalique/xk6-file: k6 extension for writing files
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

avitalique/xk6-file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xk6-file

k6 extension for writing files, implemented using the xk6 system.

Build

xk6 build v0.58.0 --with github.com/avitalique/xk6-file@latest

Example

import http from 'k6/http';
import { check } from 'k6';
import file from 'k6/x/file';

const filepath = 'sample-output.txt';
const binaryFilepath = 'sample-image.jpg';
const dirPath = 'test-dir';

export default function () {
    // Write/append string to file
    file.writeString(filepath, 'New file. First line.\n');
    file.appendString(filepath, `Second line. VU: ${__VU}  -  ITER: ${__ITER}`);

    // Read file
    const fileContent = file.readFile(filepath);
    check(fileContent, {
        "file content is correct": (content) =>
            content.includes("New file. First line.") &&
            content.includes(`Second line. VU: ${__VU}  -  ITER: ${__ITER}`),
    });

    // Remove rows from text file/clear file content/delete file
    file.removeRowsBetweenValues(filepath, 2, 2);
    file.clearFile(filepath);
    file.deleteFile(filepath);

    // Write binary file
    let response = http.get("https://upload.wikimedia.org/wikipedia/commons/3/3f/JPEG_example_flower.jpg", {
        responseType: "binary",
    });
    check(response, { 'status was 200': response.status === 200 });
    file.writeBytes(binaryFilepath, Array.from(new Uint8Array(response.body)));

    // Rename file
    file.renameFile(binaryFilepath, 'renamed-image.jpg')

    // Create directory
    file.createDirectory(dirPath);
    check(file.writeString(`${dirPath}/test-file.txt`, "Testing directory creation.") === undefined, {
        "directory created": (result) => result,
    });

    // Delete directory
    file.deleteDirectory(dirPath);
    check(
        (() => {
            try {
                file.writeString(`${dirPath}/test-file.txt`, "This should fail.");
                return false;
            } catch (e) {
                return true;
            }
        })(),
        {
            "directory deleted": (result) => result,
        }
    );
}

Run sample script

./k6 run examples/sample-script.js

About

k6 extension for writing files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages

0