笔者所在公司希望使用Selenium进行高性能的自动化测试。出于稳定性考虑,我们选择linux环境,而不是Windows环境。同时为了追求测试效率,去UI化,所以选择了Chrome的Headless方案。
在环境搭建上,没有成熟的文档和方案支持,遇到了一些问题,花了不少精力,终于完成。因此记录下来希望对大家有所帮助。
1、环境说明
CentOS版本:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core
Google-Chrome版本:Google Chrome 65.0.3325.146
Chromedriver版本:2.3.6(最新)
JDK版本:jdk-8u161-linux-x64
Tomcat版本:7.0.42
2、最新版本Google-Chrome安装
CentOS/RedHat 7以上安装google-chrome可以完全参考https://intoli.com/blog/installing-google-chrome-on-centos/ (6及以下版本不适用,一定请大家注意,强调三次)。
2.1 指定上网代理
由于服务器环境本身与外网隔绝,需要指定代理才能正常适用yum工具。我们用的代理服务器为http://10.46.89.29:1087(正常上网可以忽略此过程)。
首先,为yum工具指定代理,打开/etc/yum.conf配置文件进行编辑
在文件末尾增加以下内容(ip号+端口后无认证连接):
proxy=http://10.46.89.29:1087
如果需要认证连接则输入以下内容:
proxy=http://10.46.89.29:1087
proxy_username=代理服务器用户名
proxy_password=代理服务器密码
其次,我们还是要设置全局代理的,因为yum过程中可能还会用到curl等操作。
打开/etc/skel/.bash_profile进行编辑,末尾增加:
http_proxy=http://10.46.89.29:1087
https_proxy=http://10.46.89.29:1087
export http_proxy https_proxy
执行source /etc/skel/.bash_profile马上更新:
source /etc/skel/.bash_profile
执行curl测试:
[root@seersitapp05 ~]# curl -vo /dev/null -H 'x-header-trace:all' 'https://www.suning.com' -k
* About to connect() to proxy 10.46.89.29 port 1087 (#0)
* Trying 10.46.89.29...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 10.46.89.29 (10.46.89.29) port 1087 (#0)
* Establish HTTP proxy tunnel to www.suning.com:443
> CONNECT www.suning.com:443 HTTP/1.1
>