apifunc.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import crypto from 'k6/crypto';
  2. import exec from 'k6/execution';
  3. import { uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js';
  4. import moment from "cdnjs.com/libraries/moment.js/2.18.1";
  5. const envSetting = JSON.parse(open('env.txt'));
  6. const partnerId = envSetting.partnerId;
  7. const apiKey = envSetting.apiKey;
  8. export function GetP(baseUrl, apiPath, apiParam, bodyData) {
  9. const evsenNum = GetEvseNum();
  10. const randomUUID = uuidv4();
  11. const ts = ~~ (moment().valueOf() /1000);
  12. const urlapi = baseUrl+apiPath;
  13. const url = apiParam == "" ? urlapi : urlapi + '?' + apiParam;
  14. var assembledata = apiParam + bodyData + ts + partnerId + apiKey;
  15. var hash = crypto.md5(assembledata.toLowerCase(), 'hex').toString();
  16. const params = {
  17. headers: {
  18. 'Timestamp': ts,
  19. 'Signature': hash,
  20. 'PartnerId': partnerId,
  21. 'Content-Type': 'application/json'
  22. },
  23. }
  24. return {
  25. url: url,
  26. bodyData: bodyData,
  27. params : params
  28. };
  29. }
  30. export function GetSessionId(res){
  31. var data = JSON.parse(res.body).Data;
  32. var sessions = JSON.parse(data).Sessions;
  33. var session = sessions[0].SessionId;
  34. return session;
  35. }
  36. export function GetEvseNum(){
  37. const instanceId = exec.vu.idInTest;
  38. return ("00" + instanceId).slice(-3);
  39. }