Selenium FirefoxDriver 如何使用 Crontab 执行自动化测试
Selenium FirefoxDriver how to execute automated tests with Crontab
我有一个 Debian 构建的服务器,我需要 运行 通过 crontab 或任何其他可以完成日常工作的自动化测试。
我使用 Selenium WebDriver 2.45.0 Java 库。
使用命令行我可以执行脚本:
export DISPLAY=:0;
xvfb-run --auto-servernum --server-num=0 nohup java -jar test.jar;
但是当我将代码添加到 Crontab 时
export DISPLAY=:0 && xvfb-run --auto-servernum --server-num=0 nohup java -jar test.jar;
它只是行不通。我还尝试将代码放入 test.sh 之类的脚本中。它再次使用命令行工作,但不适用于 crontab。
我卡住了。
如果您是 运行 来自 /etc/crontab
的脚本,您需要确保该文件为 root
所有,并且不是全局可写的。
chown root:root /path/to/script; chmod o-w /path/to/script;
cron 文件(/etc/crontab
和 /etc/cron.d/*
)的处理方式不同于普通用户的 crontab
。 Cron 这样做是为了防止意外的特权升级。
此外,请确保文件格式正确cron
文件:
# Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
我还记得在某处读到 Ubuntu 忽略 /etc/cron.d/*
中文件名中带有点的文件存在问题,但我不记得是所有 Debian 变体还是只是Ubuntu-具体。所以,你可能也想检查一下。
我在 crontab 屏幕的顶部添加以下行后,问题就解决了。
我不知道技术答案,但它对我有用。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
我有一个 Debian 构建的服务器,我需要 运行 通过 crontab 或任何其他可以完成日常工作的自动化测试。
我使用 Selenium WebDriver 2.45.0 Java 库。
使用命令行我可以执行脚本:
export DISPLAY=:0;
xvfb-run --auto-servernum --server-num=0 nohup java -jar test.jar;
但是当我将代码添加到 Crontab 时
export DISPLAY=:0 && xvfb-run --auto-servernum --server-num=0 nohup java -jar test.jar;
它只是行不通。我还尝试将代码放入 test.sh 之类的脚本中。它再次使用命令行工作,但不适用于 crontab。
我卡住了。
如果您是 运行 来自 /etc/crontab
的脚本,您需要确保该文件为 root
所有,并且不是全局可写的。
chown root:root /path/to/script; chmod o-w /path/to/script;
cron 文件(/etc/crontab
和 /etc/cron.d/*
)的处理方式不同于普通用户的 crontab
。 Cron 这样做是为了防止意外的特权升级。
此外,请确保文件格式正确cron
文件:
# Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
我还记得在某处读到 Ubuntu 忽略 /etc/cron.d/*
中文件名中带有点的文件存在问题,但我不记得是所有 Debian 变体还是只是Ubuntu-具体。所以,你可能也想检查一下。
我在 crontab 屏幕的顶部添加以下行后,问题就解决了。 我不知道技术答案,但它对我有用。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin