美文网首页
selenium+chrome+testng+ant 实现lin

selenium+chrome+testng+ant 实现lin

作者: 边走边玩FREE | 来源:发表于2018-12-11 16:28 被阅读0次

window平台下的 自动化测试很好处理,但有些特殊情况需要在linux下进行测试,并且是在脚本命令下执行时。就需要无界面的操作了。具体如下:

一 软件安装部署

使用的软件版本如下:
chrome:66 下载地址:自己找
Seleniume:3.11 下载地址:http://selenium-release.storage.googleapis.com/index.html
ChromeDriver:2.38 下载地址:http://npm.taobao.org/mirrors/chromedriver/
TestNG: 6.9.9
注:官方网站下载速度慢,这里提供个人资源下载链接:

  1. 安装chrome
    自己百度

2.安装chromedriver
解压下载的文件,将文件复制到/usr/bin/ 目录下,然后更改添加执行权限,具体操作如下:

  #unzip chromedriver_linux64.zip
  #cp chromedriver /usr/bin/
  # chmod +x /usr/bin/chromedriver
  1. 安装ant
    自己百度

二 代码编写

这里是基于java的自动化测试,因此现在Eclipse编写测试的代码,最后再整理到Linux平台运行。

  1. 导入项目中需要用到的jar包,包括selenium 下的所有jar包,以及testng-6.9.9jar包。
  2. 创建测试文件,代码如下:
 @Test
public void TestOne()
{
   System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver"); //设置浏览器驱动位置
   System.setProperty("webdriver.chrome.bin", "/opt/google/chrome/chrome"); //设置浏览器运行文件位置
        
   ChromeOptions options = new ChromeOptions(); 
   options.addArguments("headless");   //无界面化
   options.addArguments("no-sandbox");  //禁用沙箱
       
  WebDriver  diver  = new ChromeDriver(options); //启动浏览器
   diver.get("http://www.baidu.com"); //访问百度
   System.out.println(diver.getTitle()); // 输出title
}
  1. 生成testng文件。在Eclipse中选择项目,右键 TestNG-》Convert to TestNG,可以自动生成testng.xml文件(需要Eclipse安装testng插件); 自己新建一个xml文件,自己补充参数。tesng.xml实例文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
  <test name="Test">
    <classes>
          <class name="Test1">
          <methods>
          <include name="TestOne"></include>
          </methods>
          </class>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

-suite: TestNg执行的单元
-classes: 执行的类列表,当有多个类需要执行时,在该处配置
-class:执行的类,改成自己的实际的类名
-methods:执行的方法,在methods中添加include,包含的测试方法,都会顺序执行。

  1. 创建build.xml文件。可以通过Eclipse自动导出,也可以自己创建。执行testng.xml 代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="Test" basedir=".">
    
    
    <property name="testng.output.dir" value="test-output"/>
    <property name="testdir" location="testdir"/>
    <property name="srcdir" location="src" />
    <property name="testng.file" value="testng.xml"/>
    <property name="libdir" location="${basedir}/libs" />
    <property name="full-compile" value="true" />

    <taskdef resource="testngtasks" classpath="${libdir}/testng-6.9.9.jar"></taskdef>
    <!-- Define<testng> task -->  

    <!-- 定义库目录路径 -->
      
       <!-- path元素用来表示一个类路径  refid:对当前构建文件中某处定义的一个path的引用 location:表示一个文件或目录,ant在内部将此扩展为一个绝对路径-->
       <path id="classpath.base"/>
       <path id="classpath.test">
       <!-- fileset定义一组文件,dir:表示fileset的基目录 includes:需要包含的文件模式列表 -->
          <fileset dir="${libdir}" includes="*jar"/>
          <pathelement location="${testdir}" />
          <path refid="classpath.base" />
       </path>
       
       <!-- target标签,name:目标名称,必须有  depends:依赖的目标 -->
       <target name="clean" >
       <!-- delete标签,删除一个文件或一组文件。verbose:指定是否列出所删除的文件,默认不列出 -->
          <delete verbose="${full-compile}">
            <fileset dir="${testdir}" includes="**/*.class" />
          </delete>
       </target>
       <target name="compile" >
            <mkdir dir="${testdir}"/>
            
       <!-- javac标签,用于编译一个或一组java文件。srcdir:源程序的目录 destdir:class文件的输出目录 verbose:表示提供详细的输出信息  classpath:所使用的类的路径-->
          <javac srcdir="${srcdir}" destdir="${testdir}" includeantruntime="off" debug="on" debuglevel="lines,vars,source"
             verbose="${full-compile}">
             <classpath refid="classpath.test"/>
             <compilerarg line="-encoding UTF-8 "/>  
          </javac>
       </target>


        <!-- outputdir testng执行的报告输出目录   classpathref 引用的的类    -->
       <target name="Test" depends="compile">
        <testng outputdir="${basedir}\test-output" classpathref="classpath.test"  delegateCommandSystemProperties="true"> 
          <xmlfileset dir="${basedir}" includes="testng.xml"/>    
        </testng>  
       </target>
       
    </project>
  1. 整理代码,在项目目录下,删除其他的文件,只留下 src,libs,testng.xml,build.xml即可。 将代码打包到linux平台下,通过ant执行,如下:
              ant -f build.xml   //需要提前安装好ant,才能执行

相关文章

  • selenium+chrome+testng+ant 实现lin

    window平台下的 自动化测试很好处理,但有些特殊情况需要在linux下进行测试,并且是在脚本命令下执行时。就需...

  • Java基础 (23) HashMap

    1)HashMap的实现原理2)ConcurrentHashMap的实现原理3)TreeMap 具体实现4)Lin...

  • 基于LinUI组件实现SPU商品选择

    1. 效果图 数据格式 2. Lin-UI组件 Lin-UI Grid组件文档 3. 实现思路 3.1. 将数据中...

  • LinkedList方法API实例演示

    LinkedList同样实现了List接口,它的特点正好与ArrayList相反,除了实现了List接口外,Lin...

  • 【Lin】

  • lin

    我认为人与人交往讲究诚信,我认为朋友与朋友交谈,不用勾心斗角,我认为喜欢就是喜欢,无可厚非,我认为…… 事情没...

  • lin

    沿着银鳞 常常钻出水面的地方 一直走 走到银粼 常常推波水面的地方 一直走 走到银淋满整个夜空 捏起夜空的嘴角 笑...

  • Lin

    初恋是初三谈的。刚确定关系的第二天他就公诸与众,请一众好友喝汽水,这好像是那会我们学校的习俗。这几乎是我唯一一段正...

  • Python:多进程

    要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Lin...

  • eclipse集成hadoop+spark+hive本地开发图文

    上一篇文章我们实现了Java+Spark+Hive+Maven实现和异常处理,测试的实例是打包运行在lin...

网友评论

      本文标题:selenium+chrome+testng+ant 实现lin

      本文链接:https://www.haomeiwen.com/subject/ajrehqtx.html