title | description | excerpt |
---|---|---|
b64decode( input, [encoding], [format] ) |
Base64 decode a string. |
Base64 decode a string. |
Decode the passed base64 encoded input
string into the unencoded original input in either binary or string formats.
Parameter | Type | Description |
---|---|---|
input | string | The string to base64 decode. |
encoding (optional) | string | The base64 encoding to use. Available options are: - "std": the standard encoding with = padding chars and + and / characters in encoding alphabet. This is the default.- "rawstd": like std but without = padding characters.- "url": URL safe version of std , encoding alphabet doesn't contain + and / characters, but rather - and _ characters.- "rawurl": like url but without = padding characters. |
format (optional) | string | If "s" return the data as a string, otherwise if unspecified an ArrayBuffer object is returned. |
Type | Description |
---|---|
ArrayBuffer / string | The base64 decoded version of the input string in either string or ArrayBuffer format, depending on the format parameter. |
Since k6 v0.32.0
b64decode()
returns an ArrayBuffer object by default instead of a string. To return a string pass"s"
as the 3rd parameter, e.g.encoding.b64decode(encodedString, 'std', 's')
.
import { check } from 'k6';
import encoding from 'k6/encoding';
export default function () {
const str = 'hello world';
const enc = 'aGVsbG8gd29ybGQ=';
const expBin = new Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]);
check(null, {
'is decoding to string correct': () => encoding.b64decode(enc, 'std', 's') === str,
'is decoding to ArrayBuffer correct': () => {
const decBin = new Uint8Array(encoding.b64decode(enc));
if (decBin.length != expBin.length) return false;
for (let i = 0; i < decBin.length; i++) {
if (decBin[i] !== expBin[i]) return false;
}
return true;
},
});
}