получить разрешение отклонено при попытке k6 запустить файл js - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь выучить k6, и я начал с его официальных документов . Я попробовал пример кода в запустить документ с изображением docker и командной строкой. В версии docker все работает нормально:

zeinab@ZiZi:~$ docker run -i loadimpact/k6 run - <k6_test.js

      /\      |‾‾|  /‾‾/  /‾/   
     /\  /  \     |  |_/  /  / /    
    /  \/    \    |      |  /  ‾‾\  
   /          \   |  |‾\  \ | (_) | 
  / __________ \  |__|  \__\ \___/ .io

  execution: local--------------------------------------------------]   servertor
     output: -
     script: -

    duration: -, iterations: 1
     vus: 1, max: 1

time="2020-02-18T11:14:26Z" level=info msg=Running i=0 t=971.124809ms starting
...
time="2020-02-18T11:14:55Z" level=info msg=Running i=0 t=29.971104099s
time="2020-02-18T11:14:55Z" level=warning msg="Request Failed" error="Get http://test.loadimpact.com: proxyconnect tcp: dial tcp 192.168.14.109:1087: i/o timeout"
time="2020-02-18T11:14:56Z" level=info msg=Running i=0 t=30.971060995s
time="2020-02-18T11:14:56Z" level=info msg="Test finished" i=1 t=31.000143344s

    data_received..............: 0 B 0 B/s
    data_sent..................: 0 B 0 B/s
    http_req_blocked...........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_connecting........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_duration..........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_receiving.........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_sending...........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_tls_handshaking...: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_req_waiting...........: avg=0s  min=0s  med=0s  max=0s  p(90)=0s  p(95)=0s 
    http_reqs..................: 1   0.032258/s
    iteration_duration.........: avg=31s min=31s med=31s max=31s p(90)=31s p(95)=31s
    iterations.................: 1   0.032258/s
    vus........................: 1   min=1 max=1
    vus_max....................: 1   min=1 max=1

Но при запуске из командной строки я получаю:

zeinab@ZiZi:~$ sudo k6 run ./k6_test.js

          /\      |‾‾|  /‾‾/  /‾/   
     /\  /  \     |  |_/  /  / /    
    /  \/    \    |      |  /  ‾‾\  
   /          \   |  |‾\  \ | (_) | 
  / __________ \  |__|  \__\ \___/ .io

ERRO[0000] open /home/zeinab/k6_test.js: permission denied 

РЕДАКТИРОВАТЬ 1:

Я получаю ту же ошибку при работе с текущим пользователем:

k6 run ./k6_test.js

РЕДАКТИРОВАТЬ 2:

Я установил k6 с использованием snap:

zeinab@ZiZi:~$ snap install k6 
k6 v0.23.1 from Null Box (nullboxorg) installed

1 Ответ

1 голос
/ 18 февраля 2020

Учитывая тот факт, что вы используете snap для его установки, это означает, что k6 из оснастки не имеет доступа и ко всей вашей fs (как и docker).

Я не очень понимаю, что такое snap, но, учитывая, что тот, кто собирает k6 для snap , не обновил его в прошлом году, я бы порекомендовал просто получить двоичный файл * 1006. * и запускаем его;).

Оригинальный ответ:

Это именно то, что он говорит: ваш root пользователь не может открыть /home/zeinab/k6_test.js, потому что у него нет разрешений. Я думаю, они либо не могут прочитать ваш домашний каталог (/home/zeinab), либо сам файл.

На самом деле вам не нужно использовать sudo, поэтому либо удалите его, либо исправьте разрешения для скрипта, хотя повторный запуск с root не является необходимым и является плохой практикой в ​​любом случае: D

В качестве примечания, docker работает, потому что любая оболочка (вероятно, bash), которую вы запускаете, является той, которая читает файл и отправляет его на стандартный ввод процесса docker. Таким образом, даже если docker является псевдонимом для sudo docker, оно все равно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...