Linux+jenkins+python+svn自动化测试集成之路

Posted 柠檬班软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux+jenkins+python+svn自动化测试集成之路相关的知识,希望对你有一定的参考价值。

你这么优秀,一定只想把“柠檬班”置顶


本文出自Python7期VIP学员琼琼。


NO1

本文背景介绍


背景1—个人基础


本机win7上安装pycharm,使用python搭建API自动化测试框架,本地运行Pass。


本机上搭建jenkins,创建测试任务,定时构建Pass。


背景2—公司实际


jenkins和python都是搭载linux系统服务器上,python脚本存放在svn上。


在背景1的前提下,往背景2跳跃,我以为只是一小步。


挪一个环境而已,对linux基础命令还算熟悉,于是开始一天的探坑之路。


NO2

第一阶段:盲目试水


盲目试水,觉得把脚本里路径改成svn就OK了。


1、修改conf中的项目路径为:


http://****.cn/svn/*API_Autotest,上传到svn上。


2、jenkins上新建自由风格任务,源码管理选择svn路径同上,添加账号凭证信息。


构建步骤添加执行shell命令:python run.py。


(本人并不会shell脚本,windows下也是用这个命令,咨询了大佬才放心用)。


然后应用—保存。


3、最后一步,正式验证是否成功,返回,点击“立即构建”。


结果可想而知,华丽丽地失败了,也不指望一次成功。


调出控制台输出,workspace里没有找到这个工程文件,意料之中。


第二次,仍然失败,run.py里第一步是从配置文件中读取section对应值,报错提示KEY_Error,反复检查配置文件和脚本,无果。


NO3

第二阶段:疯狂百度


疯狂百度,相信万能的度娘,总能找到类似的情况吧。


百度了n篇文章。


并没有找到一样背景的情况:


linux+jenkins+python+svn。


大都是搭建测试环境,部署项目Java代码的,但也不能说全无收获,确实发现了几个关键点:


1、linux一般自带python2.7,但我用的是python3.4,需要去升级服务器上的python版本,至于怎么在linux上升级python到3。


网上文章一堆一堆的,看了两三篇,差不多,于是要来搭建jenkins的服务器(公司服务器太多)账号密码。


开始用下面命令安装,需要sudo -i 临时切换到root权限,预想是python2.7和3.4共存。


最后把默认软链接指向python3:


wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz #下载资源包    tar -zxvf Python-3.4.1.tgz #解压   cd Python-3.4.1/ #进入解压后的目录    ./configure #配置    make & make install #编译&安装    python3 #无报错则成功。


验证几次失败,百度对应的报错后,解决掉了不提。


然后安装完没有报错了,还是验证不通过,于是直接找开发小姐姐帮忙看,过一会儿,她说好了可以用了。


怎么解决的呢?


小姐姐的回复是:把python2的卸掉了,启动路径替了一下。应该也可以并存的,改一下环境变量就行。


但是小姐姐直接卸了和百度里说卸掉自带的2版本可能影响其他地方,就先不管了。


2、jenkins里pyenv插件可以指定python版本,不知道跟1是不是重复了。


不管三七二十一,先去插件管理里下一个再说,用不上也没关系嘛。


1、2全部解决了,再次构建,仍是失败,报错信息,NO SECTION,也就是说读取配置文件仍然失败。


反反复复在jenkins上构建也没啥意义了,还是先到本机上调试看看。


NO4

第三阶段:自己调试+咨询大佬


第三阶段:百度已无方向,返回自己调试+咨询大佬,意外收获到pycharm+svn用法。


1、在读取配置文件的脚本main函数下,配置文件路径尝试svn路径,结果显示一大串配置提示错误。


百度pycharm里svn配置后发现居然还可以从svn代码仓库里导出脚本,编辑修改后右键直接commit,太方便了,这个以后可以一直用下去。


2、解决了pycharm里svn配置问题,重新开始尝试了读取svn路径配置文件,同样报错。


本地的可运行成功,那问题就在路径上了。


针对性地咨询了下测试大佬,果然,配置文件不能请求远程的文件,要加上一步拉到本地的操作。


而jenkins在构建任务时会自动把svn上的代码下载到本地的workspace里。


所以conf里配置文件中的project_path不能写svn路径,而是搭建jenkins的那台服务器上的workspace路径。


可能因为太细节太小了,跟喝水不能太烫一样,百度里很默契的都没提及,这是我认知中的一个盲点,于是,摔倒了半天还爬不起来。


3、大方向问题解决了,再次构建,仍是failure,报错,仍是路径错误,大佬建议先在服务器上尝试能否运行成功。


这是一个好办法,先把py脚本一个一个地在服务器上调通再看。


并且百度里关于linux下python运行报错的文章一堆一堆的,我碰到的如下:


NO Moudle Named Requests: 


那就去linux上pip install requests (ddt、openpyxl、configparser同理)


NO Moudle Named HTMLTestRunnerNew: 


那就打开secureFX。


丢个htmlTestRunnerNew.py到python安装目录lib下。


NO Moudle Named common:   


那就在每个py文件起始位置加上一段:


import os,sys     curPath = os.path.abspath(os.path.dirname(file))     rootPath = os.path.split(curPath)[0]     sys.path.append(rootPath)  


至此,服务器上运行顺利通过。


最后,再次在jenkins构建,顺利通过,花了快一天的时间。留下此文总结纪念。


Linux+jenkins+python+svn自动化测试集成之路

Linux+jenkins+python+svn自动化测试集成之路 

今日福利

需要Linux环境搭建学习视频

可加小米老师微信:

13327316731

Linux+jenkins+python+svn自动化测试集成之路

Linux+jenkins+python+svn自动化测试集成之路




以上是关于Linux+jenkins+python+svn自动化测试集成之路的主要内容,如果未能解决你的问题,请参考以下文章

利用jenkins打造通过自定义参数更新svn 指定文件任务

Linux 各种软件的安装-Jenkins和svn结合

python:jenkins与Django和svn的集成

Linux下搭建jenkins+svn+http+maven自动化部署

jenkins+maven+svn 远程部署到weblogic 持续集成

为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?