设为首页 收藏本站
查看: 948|回复: 0

[经验分享] Selenium+TestNG+SVN+Jenkins体验

[复制链接]

尚未签到

发表于 2018-1-8 20:33:09 | 显示全部楼层 |阅读模式
  Selenium+TestNG+SVN+Jenkins体验
  最近有时间可以学习,所以学习了一下用Selenium+testNG做网页自动化的流程,SVN管理代码,用Jenkins来持续集成。简单记录一下免得以后忘记了。
  1.用Maven创建工程,为了可以自动下载包,很方便。可以直接在maven repository中找你要的包,然后把
  截图的内容粘贴到pom.xml文件中,工程就会自动下载所需要的jar包。
  2.根据下面PO(Page-Object)模型,写代码,对于一个代码没有基础的人,so痛苦。。。
  PO

  • 公共库模块

    • 可复用方法
    • 日志管理
    • 等等。。
    • 页面管理

      • 单独对Web页面进行抽象、封装页面元素和操作方法
      • 用例仓库

        • 具体用例的管理
        • 执行模块---还没学习到

          • 控制器,可以批量执行,形成一个测试集




  下面是我的简陋代码(初学者的作品,莫笑啊):


  • util包,负责抽象出可复用的类、方法,比如kill进程、获取日期、获取随机数,初始化log对象、键盘操作、截图操作,封装cookie、WebDeiver对浏览器和window的一下操作等等
  • data包,负责写dataProvider中的一些测试数据(这都静态的,后面会说用excel中的数据做数据驱动)。
  • config包,负责读取配置文件,利用Property的getProperty方法来获取key对应的value值。Driver管理针对不同driver,启动前的设置。
  • page包,对Web页面进行封装,包括页面元素和操作方法
  • business包,对对应页面的逻辑进行封装
  • case包,不同页面中可以有多个case
  先说一说用到的一些jar包吧
  Testng、selenium、log4j、Feed4TestNG相关包,后面因为需要用ant来调用testng.xml所以还用到了ant的包,为了美化报告,用了testng-xslt-1.1.2.zip解压出来的saxon-8.7.jar 和 SaxonLiason.jar 等等 很多很多。。。
  接下来重点记录一下遇到的问题吧:
  a)      上传文件--------可以sendkeys、键盘模拟、或者用autoit编译出exe
  b)      iframe太多了
  driver.switchTo().frame(Int index); //传入参数为frame的序号,从0开始
  driver.switchTo().frame(String nameOrId); //传入参数为frameID或者Name属性
  driver.switchTo().parentFrame(); //切换回父级 高版本selenium可用
  driver.switchTo().defaultContent(); //切换回默认
  c)       弹出的window太多了,需要切换driver. getWindowHandles() ,然后循环处理
  d)      处理对话框(alert/confirm/prompt)
  e)      处理表格,可以拼接xpath
  f)       处理富文本框
  // 富文本编辑框的处理
  driver.switchTo().frame("ueditor_0"); //定位到富文本输入框所在的frame
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("document.body.innerHTML='ABCDEFG'"); //通过js赋值进去
  g)      处理Cookie(有时为了不依赖登录的用例,我们可以吧登录后的cookie添加进去,然后就可以操作登录后的页面了)
  h)      等待

  • driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //推荐使用
  • Thread.sleep() //浪费时间,弊端多
  i)        截图
  File screenShotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
  FileUtils.copyFile(screenShotFile, new File("C:/test.png"));
  j)        JavaScript

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应
  Selenium可以执行js脚本
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript(“xxxxxxxxxxxxxxxxxxxxxxxx”)
  //设置日期控件的读写属性
  document.getElementById(\"fromDate\").readOnly=false
  //f富文本编辑框的处理
  document.body.innerHTML='ABCDEFG'
  //js模拟点击
  js.executeScript("arguments[0].click();",driver.findElement(By.id("su")));
  //滚动条操作
  document.documentElement.scrollTop=1500
  //元素赋值
  document.getElementById('HD_CheckIn').value='zhangsan';
  //日期类型元素赋值
  js.executeScript("arguments[0] .value=‘2016-04-20’;",driver.findElement(By*****)));
  接下来写一下TestNG,还是多多看一看官方文档吧

  • TestNG的注解Annotation

    • 查看官方文档吧http://testng.org/doc/documentation-main.html#annotations
    • TestNG的断言Assert
    • 运行testNG

      • Eclipse中直接右键选择TestNG运行
      • 编写ant的xml文件
      • 命令行


    • 运行结果

      •   Eclipse中的testng插件中可以直接查看
      •   Ant中自定义的报告输入目录
      •   Jenkins中的TestNG Results Plugin

    •   ReRun failed test

      •   testng-failed.xml

    •   dataProvider

  查看Feed4j的官网http://databene.org/feed4testng.html
  @Test(dataProvider = "feeder", enabled = true)
  @Source("testdata/com/cases/YYHX_HomeTest.xls")
  查看TestNG官网
  @Test(dataProvider="LoginFail",dataProviderClass = YYHX_HomeTestData.class,enabled = false)
  接下来用ant来写一下build.xml 来调用testNG.xml
  编译所有java文件

  执行testNG.xml

  美化报告

  接下来,使用SVNJenkins来持续运行我的low代码,哈哈

  • 安装Subversion也可以用visual SVN
  • 创建版本控制库

    • C:\repos\source1(路径随意哈)
    • 在source1目录上点击鼠标右键,选择TortoiseSVN->在此创建版本库
    • 配置版本库,如果用的visual SVN更简单,就是设置权限,创建user和group

  source1\conf\svnserve.conf
[general]

  anon-access = none
  auth-access = write
  password-db = passwd
  authz-db = authz
  realm = My First Repository
  source1\conf\passwd
[users]

  test = test
  source1\conf\authz
[groups]

  all = test
[source1:/]

  test = rw

  • 导入托管文件
  • 配置svnservice服务,并启动

    • 将SVNService.exe拷贝到SVN服务端(Subversion)安装路径的BIN目录下
    • Cmd下运行命令:svnservice -install -d -r C:\repos

  安装Jenkins,并在浏览器用http://localhost:8080 打开jenkins

  • 注册admin用户
  • 安全配置
  • 设置环境变量JDK 、Ant
  • 安装插件testng-plugin
  • 创建项目环境
  • 配置项目

    • Source Code管理

    • Build环境 使用ant,并设置build.xml文件

    • Apply
    • 点击立即构建,查看控制台信息就可以看到在build文件中定义的target的任务的执行情况。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433043-1-1.html 上篇帖子: Linux服务器 Jenkins环境搭建 下篇帖子: jenkins 环境安装与配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表