Giter VIP home page Giter VIP logo

xk6-authgear's Introduction

Authgear xk6 extension

What is this

This is a xk6 extension to help writing k6 scripts for Authgear.

Preparation

Build k6

  1. Clone this repository.
  2. Follow the official guide to set things up.
  3. Run make build in this repository to build a custom build of k6.

Prepare a tenant for testing purpose

  1. We are going to use loadtest as the project ID (or app ID).
  2. Run ./authgear init -o ./tmp to generate authgear.secrets.yaml. We do not need the generated authgear.yaml.
  3. Add a row in _portal_config_source to add this tenant. Use ./authgear.yaml, ./authgear.features.yaml, and the generated authgear.secrets.yaml.

Prepare the Admin API token

  1. Inspect the content of authgear.secrets.yaml. Move the JWK of Admin API to a new file called jwk.yaml.
# authgear.secrets.yaml
# other contents omitted...
    keys:
    - alg: RS256
      created_at: 1627551836
      d: oJP9r8semY_yVCbUPWjfcBQvJ3NgXIZ0JnB4TYbvckd6XbLED_s8gwBazmq88kqyVZneZ900xmcygkYckXlk8VysNm2GRHDY9n0ISbJCjpKoDI5zsx4JODoqNbSX5O1Jz3DsUCpCvdvoQU-LPcrnIDUn9Hq8oNPGqAA2O4SGbZ96qRaAImMVp6WzBeGmttrBHrGXa16Q2_qSOzhdokfYUn0D5Ejybxp7-wPlHYbF_npiTS3cWg103YqhBOFVow_NywxUf18UN9BLaMV1sSsVz4gTN2q8y8eYmHr6nrxzCW2YBvP_oNKtQhQ9lLZ3KbZ05sfWYQxZvniMPHdV2kcEAQ
      dp: 5pdEfAA3eSlOmcjXXl3zJa66JBHvWqloln7jtSgDPZH_-7CeRrtVFiJClD--aMKeB8oUL91wAAOaigsbsJn2Ps6gzkfgsZ1D8iTalZRL2wvqJichcwjbIFkfeeq71CPtlK1JQ2wocjZRmkjiG6-3SJtIp9g5TTzqXFLrUcO7C4E
      dq: bxKtRDrR71WF4en1TsjauNC63RBXl03yr-C5cIkxUpRWzT9O30i_1PDymruxceuw7oQSiKS9icB8Dy60ZtkFbzr95YbCsK_2KkFPV4a21pAbhWSH4hF6_okp6fXiw8_1Ms62GgIZ2bky5ZNHufXCbhAQ_ZaGEXmyQw1k2dwgWJE
      e: AQAB
      kid: 8fce2c32-0a96-4431-ba40-a7f068eed276
      kty: RSA
      "n": xIfD5TGAeMYr40hh7iASyIqZnRHNefrqn-3J8uDB85pnBXl_PRhAF4tqYCOL8n9X3yquwSjtJJAnXLsEh7m8Av2srTmGgG0Qur706_O-TBipgLW_GpvCOWxrjBvU52nXBdh4tbNBCbonV4ZwAo25pGIGgnhdmurnot2NDNhApWk85khab_2wGxxhJrsq4vTXyi4oXz5XkDXAa8wXMZPXyLkr5KAXMJo6TF1WKo3yqTf9Xm_ImOpobo_Q2YiN4oP5BCKjlxnDx_EYW6jG3K25ez2310IDoNj8VFN1Le2XTB1_ZC7JqPT8Xprd-mIqLWjGZlzxciW6Ct3gXtwXbDvhRQ
      p: -NfOgiPhDE3DqmiYy7Wlp4kXgiEL0GLjv4T0NJ-lgsql9UukADWI2IhppeKN26ryBgUgNIweX6urYQUKXDSrp0uUgvuwA-c8rHaFznB0nIqXAOyiA7xx6-bxa06-AfjGDtVXEUOFejLags4mjD60IgmQ2F7mxdzGS_MdxZrEUME
      q: yi7Jz8OicYij_Qp9Qr0Wn2jVEQCSz7e3ZwKY91gYiw-uU_H6sy1qGRc7uXQZPSgmo5Kt3d2EJ-rhiXn0CYm29u4lmmJLbB_KCMGVLjQJMhPd6NlixEEqojOnDtEFKPJFIcmgcUEvuSVgUmjt3P_VBiHzwOntV67MWx-Y-vkMLYU
      qi: vLeBmXYV_Lz-s1T2a4RYR2uvuoysGAhKUAKznCxMl01DVbx2LwOcfqPdY0gK1BzAhMv9UC7vCYpQNkzyt_a0UVTRY-UGg45L_kf0PLBflc2PuOVsKNrkqHAO-zRSLiLi55ln1G77iWxrTP5B-dHFbWLPCPhHIVRQ6KCH_mGxZts
  key: admin-api.auth
# other contents omitted...
# In jwk.yaml
alg: RS256
created_at: 1627551836
d: oJP9r8semY_yVCbUPWjfcBQvJ3NgXIZ0JnB4TYbvckd6XbLED_s8gwBazmq88kqyVZneZ900xmcygkYckXlk8VysNm2GRHDY9n0ISbJCjpKoDI5zsx4JODoqNbSX5O1Jz3DsUCpCvdvoQU-LPcrnIDUn9Hq8oNPGqAA2O4SGbZ96qRaAImMVp6WzBeGmttrBHrGXa16Q2_qSOzhdokfYUn0D5Ejybxp7-wPlHYbF_npiTS3cWg103YqhBOFVow_NywxUf18UN9BLaMV1sSsVz4gTN2q8y8eYmHr6nrxzCW2YBvP_oNKtQhQ9lLZ3KbZ05sfWYQxZvniMPHdV2kcEAQ
dp: 5pdEfAA3eSlOmcjXXl3zJa66JBHvWqloln7jtSgDPZH_-7CeRrtVFiJClD--aMKeB8oUL91wAAOaigsbsJn2Ps6gzkfgsZ1D8iTalZRL2wvqJichcwjbIFkfeeq71CPtlK1JQ2wocjZRmkjiG6-3SJtIp9g5TTzqXFLrUcO7C4E
dq: bxKtRDrR71WF4en1TsjauNC63RBXl03yr-C5cIkxUpRWzT9O30i_1PDymruxceuw7oQSiKS9icB8Dy60ZtkFbzr95YbCsK_2KkFPV4a21pAbhWSH4hF6_okp6fXiw8_1Ms62GgIZ2bky5ZNHufXCbhAQ_ZaGEXmyQw1k2dwgWJE
e: AQAB
kid: 8fce2c32-0a96-4431-ba40-a7f068eed276
kty: RSA
"n": xIfD5TGAeMYr40hh7iASyIqZnRHNefrqn-3J8uDB85pnBXl_PRhAF4tqYCOL8n9X3yquwSjtJJAnXLsEh7m8Av2srTmGgG0Qur706_O-TBipgLW_GpvCOWxrjBvU52nXBdh4tbNBCbonV4ZwAo25pGIGgnhdmurnot2NDNhApWk85khab_2wGxxhJrsq4vTXyi4oXz5XkDXAa8wXMZPXyLkr5KAXMJo6TF1WKo3yqTf9Xm_ImOpobo_Q2YiN4oP5BCKjlxnDx_EYW6jG3K25ez2310IDoNj8VFN1Le2XTB1_ZC7JqPT8Xprd-mIqLWjGZlzxciW6Ct3gXtwXbDvhRQ
p: -NfOgiPhDE3DqmiYy7Wlp4kXgiEL0GLjv4T0NJ-lgsql9UukADWI2IhppeKN26ryBgUgNIweX6urYQUKXDSrp0uUgvuwA-c8rHaFznB0nIqXAOyiA7xx6-bxa06-AfjGDtVXEUOFejLags4mjD60IgmQ2F7mxdzGS_MdxZrEUME
q: yi7Jz8OicYij_Qp9Qr0Wn2jVEQCSz7e3ZwKY91gYiw-uU_H6sy1qGRc7uXQZPSgmo5Kt3d2EJ-rhiXn0CYm29u4lmmJLbB_KCMGVLjQJMhPd6NlixEEqojOnDtEFKPJFIcmgcUEvuSVgUmjt3P_VBiHzwOntV67MWx-Y-vkMLYU
qi: vLeBmXYV_Lz-s1T2a4RYR2uvuoysGAhKUAKznCxMl01DVbx2LwOcfqPdY0gK1BzAhMv9UC7vCYpQNkzyt_a0UVTRY-UGg45L_kf0PLBflc2PuOVsKNrkqHAO-zRSLiLi55ln1G77iWxrTP5B-dHFbWLPCPhHIVRQ6KCH_mGxZts
  1. Run make admin-api-token to generate the Admin API token. You can set it as ADMIN_API_TOKEN in Makefile.

Prepare other variables

  1. Open Makefile
  2. Set ENDPOINT to the endpoint of Authgear.
  3. Set CLIENT_ID to the client ID. You can find it in authgear.yaml.
  4. Follow Prepare the Admin API token to set up ADMIN_API_TOKEN.

Tweak load test parameters

  1. Open Makefile
  2. VUS represents the number of concurrent user in the test.
  3. DURATION is how long the test should run.

Run the test

Make sure you follow Preparation first.

Run make run to run the test.

xk6-authgear's People

Contributors

louischan-oursky avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.