Compare commits
3 Commits
d23311f5b0
...
082ab9a7ea
Author | SHA1 | Date |
---|---|---|
aardouin | 082ab9a7ea | |
aardouin | 8ce504a593 | |
Valentin Carroy | bc3a0886b0 |
|
@ -83,7 +83,7 @@ func (s *Server) submitHandler(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
if !verified {
|
||||
if !verified && !s.config.DisableValidation {
|
||||
slog.Debug("Invalid solution")
|
||||
http.Error(w, "Invalid solution", http.StatusBadRequest)
|
||||
return
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
package config
|
||||
|
||||
type Config struct {
|
||||
BaseUrl string `env:"ALTCHA_BASE_URL" envDefault:""`
|
||||
Port string `env:"ALTCHA_PORT" envDefault:"3333"`
|
||||
HmacKey string `env:"ALTCHA_HMAC_KEY"`
|
||||
MaxNumber int64 `env:"ALTCHA_MAX_NUMBER" envDefault:"1000000"`
|
||||
Algorithm string `env:"ALTCHA_ALGORITHM" envDefault:"SHA-256"`
|
||||
Salt string `env:"ALTCHA_SALT"`
|
||||
Expire string `env:"ALTCHA_EXPIRE" envDefault:"600"`
|
||||
CheckExpire bool `env:"ALTCHA_CHECK_EXPIRE" envDefault:"1"`
|
||||
Debug bool `env:"ALTCHA_DEBUG" envDefault:"false"`
|
||||
BaseUrl string `env:"ALTCHA_BASE_URL" envDefault:""`
|
||||
Port string `env:"ALTCHA_PORT" envDefault:"3333"`
|
||||
HmacKey string `env:"ALTCHA_HMAC_KEY"`
|
||||
MaxNumber int64 `env:"ALTCHA_MAX_NUMBER" envDefault:"1000000"`
|
||||
Algorithm string `env:"ALTCHA_ALGORITHM" envDefault:"SHA-256"`
|
||||
Salt string `env:"ALTCHA_SALT"`
|
||||
Expire string `env:"ALTCHA_EXPIRE" envDefault:"600"`
|
||||
CheckExpire bool `env:"ALTCHA_CHECK_EXPIRE" envDefault:"1"`
|
||||
Debug bool `env:"ALTCHA_DEBUG" envDefault:"false"`
|
||||
DisableValidation bool `env:"ATLCHA_DISABLE_VALIDATION" envDefault:"false"`
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
# K6 - Load Test
|
||||
|
||||
Very basic load testing script for [k6](https://k6.io/).
|
||||
|
||||
## How to run
|
||||
|
||||
```shell
|
||||
k6 run -e LOAD_TEST_URL={altcha-api-url} TestChallenge.js
|
||||
```
|
|
@ -0,0 +1,50 @@
|
|||
import { check, group } from 'k6';
|
||||
import http from 'k6/http'
|
||||
|
||||
export const options = {
|
||||
scenarios: {
|
||||
load: {
|
||||
vus: 10,
|
||||
iterations: 10,
|
||||
executor: 'per-vu-iterations',
|
||||
options: {
|
||||
browser: {
|
||||
type: 'chromium',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
http.setResponseCallback(
|
||||
http.expectedStatuses(200)
|
||||
);
|
||||
|
||||
export default function () {
|
||||
|
||||
let response;
|
||||
|
||||
group('Request challenge', function () {
|
||||
|
||||
response = http.get(`${__ENV.LOAD_TEST_URL}request`);
|
||||
check(response, {
|
||||
'is status 200': (r) => r.status === 200,
|
||||
'Contenu souhaité': r => r.body.includes('algorithm') && r.body.includes('challenge') && r.body.includes('maxNumber') && r.body.includes('salt') && r.body.includes('signature'),
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
group('Verify challenge', function () {
|
||||
|
||||
const data = {"challenge":"d5656d52c5eadce5117024fbcafc706aad397c7befa17804d73c992d966012a8","salt":"8ec1b7ed694331baeb7416d9?expires=1727963398","signature":"781014d0a7ace7e7ae9d12e2d5c0204b60a8dbf42daa352ab40ab582b03a9dc6","number":219718,};
|
||||
response = http.post(`${__ENV.LOAD_TEST_URL}verify`, JSON.stringify(data),
|
||||
{
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
check(response, {
|
||||
'is status 200': (r) => r.status === 200,
|
||||
'Challenge verified': (r) => r.body.includes('true'),
|
||||
});
|
||||
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue