testNg+maven +jenkins进行selenium自动化集成

By | 2017-09-11

摘要 上一次搞定了appium+python+jenkins的自动化集成,但是感觉对于jenkins的集成还是有很多不太理解的地方,所以今天抽空研究了下使用testNg+maven+selenium+jenkins的自动化集成。 正文 准备环境 首先我们新建一个maven的工程,并且在pom.xml中配置好我们依赖的一些jar包 <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.46.0</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.6</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-api</artifactId> <version>2.46.0</version> </dependency> </dependencies> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 编写我们selenium脚本 public class NewTest { private WebDriver driver; @BeforeTest public void beforeTest(){ driver =… Read More »

Docker 2375 端口入侵服务器

By | 2017-09-08

相信了解过docker remote API的同学对2375端口都不陌生了,2375是docker远程操控的默认端口,通过这个端口可以直接对远程的docker daemon进行操作。 当$HOST主机以docker daemon -H=0.0.0.0:2375方式启动daemon时,可以在外部机器对$HOST的docker daemon进行直接操作: docker -H tcp://$HOST:2375 ps 好,说说如何“入侵”,怎么通过这个端口入侵宿主机呢? 这个应该要从几个点说起吧: 1. docker对user namespace没有做隔离,也就是说,容器内部的root用户就是宿主机的root用户,一旦挂载目录,就可以在容器内部以宿主机的root用户身份对挂载的文件系统随意修改了。 docker服务拥有很高的执行权利(相当于root),并且在docker用户组下的普通用户不需要任何其他验证就可以执行docker run等命令。 暴露的docker remote API端口如果没有启动ssl验证的话,任何能连通到这台docker宿主机的的机器都可以随意操作这台docker宿主机的docker daemon(docker run、docker ps、docker rm等等这些命令都不在话下)。 结合以上3点,就基本具备入侵docker宿主机的条件了 讲得似乎有点悬,不多说,直接拿一个活鲜鲜的例子来讲吧: (请允许我用最近新学的一道菜将流程带过 ╮( ̄▽ ̄)╭ ) 秘制红烧肉(docker版) 材料:一整块一整块的“5花”IP段,越肥越好(小白用户越多越好) 配料:nmap,docker step 1: 扫描2375端口 怎么扫?我选用的是简单易用的黑客必备神器nmap了。 扫哪里呢?我选的目标是aliyun的IP段,百度得知: 42.96.128.0/17 Alibaba (Beijing) Technology Co., Ltd. China 42.120.0.0/16 Aliyun Computing Co., LTD China 42.121.0.0/16 Aliyun Computing… Read More »

Linux CentOS 7 安装字体库 & 中文字体

By | 2017-09-08

前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如上图可以看出,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS 7中如何安装字体库以及中文字体。 安装字体库 在CentOS 4.x开始用fontconfig来安装字体库,所以输入以下命令即可: yum -y install fontconfig 1 当看到下图的提示信息时说明已安装成功: 这时在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的): 接下来就可以给我们的字体库中添加中文字体了。 添加中文字体 在CentOS中,字体库的存放位置正是上图中看到的fonts目录,所以我们首先要做的就是找到中文字体文件放到该目录下,而中文字体文件在我们的windows系统中就可以找到,打开c盘下的Windows/Fonts目录: 如上图,我们只需要将我们需要的字体拷贝出来并上传至linux服务器即可,在这里我选择宋体和黑体(报表中用到了这两种字体),可以看到是两个后缀名为ttf和ttc的文件: 在这之前我们还需要新建目录,首先在/usr/shared/fonts目录下新建一个目录chinese: 然后就是将上面的两个字体上传至/usr/shared/fonts/chinese目录下即可: 紧接着需要修改chinese目录的权限: chmod -R 755 /usr/share/fonts/chinese 1 接下来需要安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件,输入命令: yum -y install ttmkfdir 1 当看到下图的提示信息时说明已安装成功: 然后执行ttmkfdir命令即可: ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir 1 最后一步就是修改字体配置文件了,首先通过编辑器打开配置文件: vi /etc/fonts/fonts.conf 1 可以看到一个Font list,即字体列表,在这里需要把我们添加的中文字体位置加进去: 然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了: fc-cache 1 这样所有的步骤就算完成了,最后再次通过fc-list看一下字体列表: 可以看到已经成功安装上了中文字体,至此安装过程就全部结束,再次查看报表可以发现中文样式和内容均已可以正常显示了。 总结 简单记录一下在CentOS 7中安装字体库以及中文字体的问题,希望对遇到同样问题的同学有所帮助,The End。

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

By | 2017-09-08

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自:http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。 通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。 开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。 Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。 —————————-摘抄内容结束——————————- 画了一个ELK工作的原理图: 如图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。 ELK平台搭建 系统环境 System: Centos release 6.7 (Final) ElasticSearch: 2.1.0 Logstash: 2.1.1 Kibana: 4.3.0 Java: openjdk version  “1.8.0_65” 注:由于Logstash的运行依赖于Java环境, 而Logstash 1.5以上版本不低于java 1.7,因此推荐使用最新版本的Java。因为我们只需要Java的运行环境,所以可以只安装JRE,不过这里我依然使用JDK,请自行搜索安装。 ELK下载:https://www.elastic.co/downloads/ ElasticSearch 配置ElasticSearch: tar -zxvf elasticsearch-2.1.0.tar.gz cd elasticsearch-2.1.0 安装Head插件(Optional): ./bin/plugin install mobz/elasticsearch-head 然后编辑ES的配置文件: vi config/elasticsearch.yml 修改以下配置项: cluster.name=es_cluster node.name=node0 path.data=/tmp/elasticsearch/data path.logs=/tmp/elasticsearch/logs… Read More »

centos7设置tomcat7为系统服务的方法

By | 2017-08-30

1,准备工作: JKD:jdk-7u72-Linux-x64.gz Tomcat:apache-tomcat-7.0.70.tar.gz OS:CentOS linux release 7.2.1511 (Core) 2,安装jdk A,解压jdk在 /usr/ 目录下 B, root用户配置全局环境变量, [plain] view plain copy vi /etc/profile 追加以下内容 export JAVA_HOME=/usr/jdk1.7.0_72 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 生效:source /etc/profile 3,安装tomcat7 A,解压tomcat至 /usr/目录下 B,在/usr/lib/systemd/system/目录下新建文件tomcat7.service,内容如下: [html] view plain copy [Unit] Description=Tomcat7 After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment=‘JAVA_HOME=/usr/jdk1.7.0_72’ Environment=‘CATALINA_PID=/usr/apache-tomcat-7.0.70/bin/tomcat.pid’ Environment=‘CATALINA_HOME=/usr/apache-tomcat-7.0.70/’ Environment=‘CATALINA_BASE=/usr/apache-tomcat-7.0.70/’ Environment=‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’ WorkingDirectory=/usr/apache-tomcat-7.0.70/ ExecStart=/usr/apache-tomcat-7.0.70/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target   C,设置为开启机启动:systemctl enable tomcat7 4,启停服务 A,启动服务:systemctl start tomcat7 B,停止服务:systemctl stop tomcat7 C,重启服务:systemctl… Read More »

详解CentOS 7下安装Tomcat到服务

By | 2017-08-30

环境: CentOS Linux release 7.3.1611 (Core) 3.10.0-514.16.1.el7.x86_64 1.安装Java环境 Jre有ServerJre和Jre的区别。两者具体的区别就是ServerJre启动时默认Jvm是Server模式,且包含了一些监控工具,具体的区别见Oracle的站点。现在普遍存在的一个问题就是大部分JAVA程序是基于JAVA7开发的,但是Oracle早就更新到了Java8,且网站上默认提供的是Jre8的下载。不过,无论你要下载哪个版本的JRE,都可以在这里找到。下载ServerJre之前需要单选 Accept License Agreement 来激活下载链接。这里选择的是server-jre-7u80-linux-x64.tar.gz 。下载完毕,解压到 /usr/local/, 这里需要注意的是,解压后的server-jre-7u80-linux-x64.tar.gz 名字是jdk1.7.0_79,但是我测试过,这个跟真正的JDK文件是有所不同的。解压完毕后,编辑 /etc/profile设置环境变量并验证: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat >>/etc/profile << “EOF” #set java env JAVA_HOME=/usr/local/jdk1.7.0_80 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH EOF source /etc/profile java version “1.7.0_79” Java(TM) SE Runtime… Read More »

Centos7.3安装和配置Mysql5.7

By | 2017-08-30

第一步:获取mysql YUM源 进入mysql官网获取RPM包下载地址 https://dev.mysql.com/downloads/repo/yum/     点击 下载   右击 复制链接地址 https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm   得到这个  这个就是Yum仓库的rpm包 其实就是一个下载地址   第二步:下载和安装mysql源 先下载 mysql源安装包 [root@localhost ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm -bash: wget: 未找到命令 我们先安装下wget yum -y install wget 然后执行 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm   安装mysql源 yum -y localinstall mysql57-community-release-el7-11.noarch.rpm   第三步:在线安装Mysql yum -y install mysql-community-server 下载的东西比较多 要稍微等会;   第四步:启动Mysql服务 systemctl start mysqld   第五步:设置开机启动 [root@localhost ~]#… Read More »

SSH远程会话管理工具 – screen使用教程

By | 2017-08-29

SSH远程会话管理工具 – screen使用教程 2010年10月15日 下午 | 作者:VPS侦探 VPS侦探在刚接触Linux时最怕的就是SSH远程登录Linux VPS编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止,只能重新连接,重新运行。相信现在有些VPSer也遇到过这个问题,今天就给VPSer们介绍一款远程会话管理工具 – screen命令。 一、screen命令是什么? Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。 二、如何安装screen命令? 除部分精简的系统或者定制的系统大部分都安装了screen命令,如果没有安装,CentOS系统可以执行:yum install screen ; Debian/Ubuntu系统执行:apt-get install screen 。 三、screen命令使用方法? 1、常用的使用方法 用来解决文章开始我们遇到的问题,比如在安装lnmp时。 1.1 创建screen会话 可以先执行:screen -S lnmp ,screen就会创建一个名字为lnmp的会话。 VPS侦探 https://www.vpser.net/ 1.2 暂时离开,保留screen会话中的任务或程序 当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d) 1.3 恢复screen会话 当回来时可以再执行执行:screen -r lnmp 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -lsscreen会列出当前存在的会话列表,如下图: 11791.lnmp即为刚才的screen创建的lnmp会话,目前已经暂时退出了lnmp会话,所以状态为Detached,当使用screen -r lnmp后状态就会变为Attached,11791是这个screen的会话的进程ID,恢复会话时也可以使用:screen -r 11791 1.4 关闭screen的会话 执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。VPS侦探 https://www.vpser.net/ 2、远程演示 首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。 3、常用快捷键… Read More »

使用Ngrok实现内网穿透服务

By | 2017-08-29

# 使用Ngrok实现内网穿透服务 tags: 网络 Linux ngrok ngrok是什么? ngrok是一个能够实现不能直接与外网沟通的设备,通过外网服务器的转发实现自我服务器化的软件,也就是不需要通过路由器的端口映射,就能实现内网设备向外网暴露端口的软件。 实现ngrok服务需要什么? 需要一个能够提供服务的外网服务器,并运行ngrok服务端,它将默认监听4443端口,当内网的机器运行ngrok客户端并连接上服务器时,将通过4443端口进行转发设置,并按设定将指定的端口的数据动作与服务器进行转发。协议上它支持http,https,tcp协议 如何搭建自己的ngrok服务器 最新版ngrok目前仅由官方提供技术支持和服务器,开源的ngrok代码只支持到1.7版本,只有自己编译的ngrok才能在自己的服务器上提供内网穿透服务。ngrok使用GO语言编写,可以自己配置实现交叉编译,全平台通用 一. 软件的编译 以下动作发生在debian 8.2 x86平台 1. 编译安装GO 建议安装1.4版本平台,由于软件开发时间问题,新版本的GO可能会出现编译问题 下载GO1.4 # pwd # ~/Software # apt-get install gcc cmake # wget http://www.golangtc.com/static/go/1.4/go1.4.linux-386.tar.gz # tar xvf http://www.golangtc.com/static/go/1.4/go1.4.linux-386.tar.gz 配置编译环境 # export GOROOT=$HOME/software/go # export PATH=$PATH:$GOROOT/bin 编译&检查 # cd go/src/ # ./all.bash 编译完成后~/go/bin中的go就是我们的二进制go程序 2. 编译安装ngrok 下载ngrok #… Read More »

使用frp实现内网穿透

By | 2017-08-29

群晖NAS+frp发挥更大作用 Posted by SunnyRx on October 21, 2016 原文地址:http://www.sunnyrx.com/2016/10/21/simple-to-use-frp/ NAS没有公网IP是一件很不方便的事情,尤其是在国内的网络环境,学校和小区内的用户通常都没有公网IP。为了解决这个问题,则需要内网穿透,而内网穿透的方法有很多种,例如使用花生壳、ngrok等,该文章要介绍的是使用frp让群晖实现内网穿透。 实际上frp有官方的中文文档,上面的内容已经非常详尽,对相关操作比较熟悉的人可以直接阅读官方的中文文档。 什么是frp frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 准备 在使用frp之前,需要一台有公网IP的服务器(下文称外网主机),一台需要实现内网穿透的机器(下文称内网主机),SSH工具,以及一个域名(如果只是建立SSH反向代理则不需要域名)。 该文章中笔者所使用的服务器是朋友推荐的Vultr服务器,虽然服务器是在国外,但胜在带宽够,有需要的朋友可以注册一个。而需要实现内网穿透的机器则是笔者用上网本搭建的黑群晖。SSH工具使用的是Xshell 5。而域名笔者则是使用自己个人网站的域名。 开始使用 根据机器的操作系统,在Release页面中找到对应的frp程序,然后分别在外网主机和内网主机中下载它。 下面的所示范用的frp程序版本是以笔者的服务器为主的。 外网主机 SSH连接上外网主机后,使用wget指令下载frp。 wget https://github.com/fatedier/frp/releases/download/v0.8.1/frp_0.8.1_linux_amd64.tar.gz 使用tar指令解压tar.gz文件 tar -zxvf frp_0.8.1_linux_amd64.tar.gz 使用cd指令进入解压出来的文件夹 cd frp_0.8.1_linux_amd64 外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。 rm -f frpc rm -f frpc.ini 接下来要修改服务器配置文件,即frps.ini文件。使用vi指令对目标文件进行编辑。 vi frps.ini 打开frps.ini后可以看到默认已经有很多详细的配置和示范样例,该文章仅以达到内网穿透为目的,所以这里选择删掉或注释掉里面的所有内容,然后根据群晖的情况,按照官方的中文文档添加以下配置。(这里的操作都使用vi命令,关于vi命令的使用方式这里不作详细介绍,可以自行搜索相关使用方法。) [common] bind_port = 7000 vhost_http_port =… Read More »