Skip to content

Instantly share code, notes, and snippets.

@devformatters
Created June 16, 2020 08:45
Show Gist options
  • Save devformatters/4c873432ef85b8d4297131de09804322 to your computer and use it in GitHub Desktop.
Save devformatters/4c873432ef85b8d4297131de09804322 to your computer and use it in GitHub Desktop.
import http from 'k6/http'
// default endpoint
export const endpoint = 'http://localhost:4000/graphql'
/**
* Util for picking a random number.
*
*/
export const rand = (base, limit) => {
const min = Math.ceil(base)
const max = Math.floor(limit)
return Math.floor(Math.random() * (max - min)) + min
}
/**
* Make a GQL request params.
*
*/
export const makeParams = (endpoint, query, token) => {
const headers = { headers: { 'Content-Type': 'application/json' } }
if (token) {
headers['headers']['x-access-token'] = token
}
const body = JSON.stringify({ query })
return [ 'POST', endpoint, body, headers ]
}
/**
* Get tokens by calling login API.
*
*/
export const getTokens = (endpoint, users) => {
const params = users.map(user => {
const query = `
mutation {
userLogin(input: { email: "${user.email}", password: "${user.password}" }) {
auth
token
}
}
`
return makeParams(endpoint, query)
})
const tokens = (http.batch(params))
.map(response => {
if (response.status === 200) {
const { data: { userLogin: { auth, token } } } = JSON.parse(response.body)
return token
}
return
})
return { tokens }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment