Jenkins 十二: 集成 selenium 测试
我的selenium采用的是python版本。
其实 selenium java版本也类似。
1. 在jenkins里面新建selenium 测试项目。
源码管理采用 “Subversion”,输入 “Repository URL”即可。
找到“构建” –> “增加构建步骤” –> “Execute Windows batch command”。由于我的测试源码都放在src下面,我需要运行的test suite都在testsuite_all.py里面,所以在”命令“中输入”python src\testsuites\testsuite_all.py“。
找到”构建后操作“ –> ”增加构建后操作步骤” –> “E-mail Notification”。在“Recipients”中输入需要通知的用户邮箱。
点击”保存“按钮。
2. 构建
在项目里,点击”立即构建“即可看到浏览器被打开,selenium 测试用例被执行。
3. 遇到的问题
1) 问题: 构建时提示import时找不到xxx模块。
思路: xxx模块在src下面,但是jenkins只能找到项目路径,不认识项目下的src路径下的东西,所以把src加入python环境变量即可。
解决方案:在testsuite_all.py开头添加如下内容
import sys
sys.path.append('src/')
2) 问题: 构建时提示找不到chromedriver.exe
思路: 路径问题。jenkins只认识项目下东西,之前采用./..等相对路径,替换成从src开始写路径。
示例如下:
driver=webdriver.Chrome(executable_path="src/xxx/chromedriver.exe")
4. 部署被测试项目(可选)
如果被测试项目也在jenkins里面进行部署。我们需要在被测试项目build完成之后,自动build selenium测试项目。
在jenkins里面找到被测试项目,点击”配置“。
找到”构建后操作“ –>”增加构建后操作步骤“ -> ”Build other projects“。
在”要构建的项目“中输入 selenium测试项目的名称。
点击”应用“ ,”保存“按钮。
在被测试项目中允许”立即构建“,即可构建被测试项目+执行selenium测试项目。
5. 备注
其实jenkins里面有一些关于selenium的插件,但是我没有找到关于webdriver 的。所以只能通过这种笨方法。
Jenkins 十二: 集成 selenium 测试的更多相关文章
- [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...
- 使用jenkins pipeline,并发selenium测试 --- 你值得了解
一.契机 相信很多使用selenium进行UI测试,再对接jenkins时,都是简单的在jenkins上将命令输入就完事了. 但是,相信你一定会遇到以下问题: 1.你需要同时跑不同文件或不同类的用例, ...
- 《Python 学习手册4th》 第十二章 if测试和语法规则
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...
- [Python爬虫] 之二十二:Selenium +phantomjs 利用 pyquery抓取界面网站数据
一.介绍 本例子用Selenium +phantomjs爬取界面(https://a.jiemian.com/index.php?m=search&a=index&type=news& ...
- jmeter(二十二)jmeter测试Java请求
目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Java Request Sampler 一.核心步骤 1.创建一个Java工程: ...
- [Python爬虫] 之十二:Selenium +phantomjs抓取中的url编码问题
最近在抓取活动树网站 (http://www.huodongshu.com/html/find.html) 上数据时发现,在用搜索框输入中文后,点击搜索,phantomjs抓取数据怎么也抓取不到,但是 ...
- SpringBoot进阶教程(二十二)集成RabbitMQ---MQ实战演练
RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.RabbitMQ是流行的开源消息队列系统,用erlang语言开发.Rab ...
- TestNG(十二) 参数化测试
<?xml version="1.0" encoding="utf-8" ?> <suite name = "parameter&q ...
- [原]Jenkins(十)---jenkins注册管理员admin并赋所有权限给admin
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
随机推荐
- 【转】iOS开发6:UIActionSheet与UIAlertView
原文: http://my.oschina.net/plumsoft/blog/42763 iOS程序中的Action Sheet就像Windows中的 “确定-取消”对话框一样,用于强制用户进行选择 ...
- 通常我们使用[NSDate date]方法得到的时间与当前时间不一致,如何解决?
NSDate *date = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interv ...
- What is SaaS?
SaaS, or Software as a Service, describes any cloud service where consumers are able to access softw ...
- set,multiset容器类型
set和multiset会根据特定的排序准则,自动将元素排序.两者不同处在于multiset允许元素重复而set不允许. 一.集和多集(set 和multiset 容器类) 在使用set和multis ...
- meta里面的viewport属性
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1, ...
- linux下Rtree的安装
1. 首先安装依赖libspatialindexhttp://libspatialindex.github.io/ sudo ./configure sudo make sudo make insta ...
- 物联网操作系统 - Contiki
What is Contiki? Contiki is an open source operating system for the Internet of Things. Contiki conn ...
- mapreduce (六) MapReduce实现去重 NullWritable的使用
习题来源:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.htmlfile1 2012-3-1 a 2012-3-2 b 2012 ...
- Rundeck,RUN起来!!
零晨一点, 还好,跑起来了.. 满满的英文文档,肿么办?? 拿下!
- Qt中暂停线程的执行(利用QMutex,超级简单明了)
在线程中定义一个信号量: QMutex pause;把run()函数中循环执行的部分用信号量pause锁住: void run() { while(1) { pause.lock(); //循环执行的 ...