繁体   English   中英

尝试 k6 运行 js 文件时获得权限被拒绝

[英]get permission denied when trying to k6 run a js file

我正在尝试学习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:

我使用snap安装了k6

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

鉴于您使用 snap 来安装它,这意味着 snap 内部的 k6 也无法访问您的整个 fs(就像 docker 不能访问一样)。

我不太了解 snap,但考虑到为 snap 构建 k6 的人在去年没有更新它,我建议只获取二进制文件并运行它;)。

原答案:

这正是它所说的:您的root用户无法打开/home/zeinab/k6_test.js因为他们没有权限。 我猜他们要么无法读取您的主目录( /home/zeinab )或文件本身。

你真的不需要使用sudo所以要么删除它要么修复脚本的权限,尽管再次使用 root 运行是没有必要的,无论哪种方式都是不好的做法:D

作为旁注,docker 工作是因为您运行的任何 shell(可能是 bash)都是读取文件并将其发送到 docker 进程的 stdin 的那个。 因此,即使dockersudo docker别名,它仍然可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM