美文网首页
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

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