selenium_maven高级实战
Maven在自动化中可以帮助我们更好的管理我们的工程,今天就来仔细学习下它的用法;
1.一个重要的插件:Maven surefire-plugin
用Maven的这个插件的目的主要是为了:用Maven直接调用testng的xml文件实现测试脚本的运行;
1.1引用
引用Maven surefire-plugin的方法如下:打开pom文件,找到Effective POM;
使用此插件,需要复制:
<plugin><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version>
到pom.xml文件,将其导入到pom.xml文件的时候,需要对其进行包装,包装后的引用如下:
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <excludes> <exclude>TestModule1/TestMavenSurefirePlugin.java</exclude> <exclude>TestModule2/TestJavaInPom.java</exclude> </excludes> <sureXmlFiles> <sureXmlFile> ${project.basedir}/src/test/java/TestModule1/TestMavenSurefirePlugin.xml </sureXmlFile> </sureXmlFiles> </configuration> </plugin> </plugins> </build>
注意下:<excludes>标签,当没有此标签的时候,maven执行测试用例的时候,执行的是所有测试用例,加上此标签后,会将此标签下的测试用例进行排除后,执行指定的测试用例。
1.2Maven执行测试用例的两种方式
注意:maven-surefire-plugin必须与testng.jar同时导入到pom.xml文件中的时候才可以使用Maven来调试testng的测试用例;Maven执行测试用例有两种方式。
1.使用cmd命令行。
cd到项目指定路径下,执行mvn test即可。
2.执行pom.xml文件,右键->Run as maven test执行。
1.3用Maven运行测试用例的好处
1.在一定程度上减少了必要步骤,尤其是命令行运行的方式,我们只需要有工程即可;
2.Maven运行的方式,会自动在target文件夹下生成测试报告。
1.4使用Maven运行不包含testng XML文件的java文件
具体场景如下:
此时pom.xml文件配置如下:
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <includes> <include> TestModule2/TestJavaInPom.java </include> </includes> </configuration> </plugin> </plugins> </build>
运行此脚本还是可以通过cmd命令行和pom.xml文件两种方式。请注意<includes>标签里面可以有多个<include>。即可以运行多个测试类。
1.5Maven设置多线程测试用例
实例:
import org.openqa.selenium.WebDriver; import org.testng.annotations.Test; import com.xinbao.utils.Browsers; import com.xinbao.utils.BrowsersType; public class TestMutipleThreads {private WebDriver driver;@Testpublic void visit360So() {Browsers browser = new Browsers(BrowsersType.chrome);driver = browser.driver;driver.get("https://www.so.com/");driver.quit();}@Testpublic void visitBKY() {Browsers browsers = new Browsers(BrowsersType.ie);driver = browsers.driver;driver.get("https://www.cnblogs.com/");driver.quit();} }
上面的测试类中我们需要验证两个测试用例,一个是打开360搜索,一个是打开博客园,我们此时想同时启用两个线程来验证测试用例,就需要在:pom.xml文件中设置如下:
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <excludes>excludes标签是排除的意思 <exclude>TestModule3/TestMutipleThreads.java</exclude> <exclude>TestModule2/TestJavaInPom.java</exclude> </excludes> <parallel>methods</parallel> <threadCount>3</threadCount> <sureXmlFiles> <sureXmlFile> ${project.basedir}/src/test/java/TestModule1/TestMavenSurefirePlugin.xml </sureXmlFile> </sureXmlFiles> </configuration> </plugin> </plugins> </build>
即需要添加:<parallel>和<threadCount>两个标签,请注意:设置的threadCount的数量最好大于测试用例数量,这样可以极大的提高运行效率。
1.6Maven远程调试
应用场景:什么时候会用到远程调试呢?我们知道我们开发代码会在某个IDE里进行(我习惯用Eclipse),它里面有自带的java编译体系,maven里面也有区别与IDE的java编译体系,当我们在IDE里正常编译的脚本,用maven编译确报错的时候,我们就需要对其进行远程调试。
使用步骤如下:
1.在Eclipse里找到报错的类,打上断点;
2.登录远程机器;
3.在cmd命令行下,执行mvn -Dmaven.surefire.debug test命令即可在cmd命令行下显示出报错信息;
需要注意的是:我们使用远程调试的时候,需要在Pom.xml文件的build标签下添加:<defaultGoal>compile</defaultGoal>
2.Maven其他应用
2.1Maven的使用范围
maven的依赖jar是有范围的,maven中用dependency scope来限制依赖范围。主要记住以下两种情形。
1.所引用的jar存在于maven仓库中,这里不区分maven私库、中央库亦或是本地库,只要所引用的jar在maven库中,此时默认的<scope>的值就是compile。即如下形式:
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>compile</scope></dependency>
2.当所引用的jar以外部引用的形式提供,此时maven不会去仓库查找它,要想在pom.xml文件中引用这类jar的时候,此时<scope>的值为system,并且要配置其路径,即增加systemPath标签,需要如下进行:
<dependency><groupId>com.haibao</groupId><artifactId>log4i</artifactId><version>1.2.11</version><scope>system</scope><systemPath>${project.basedir}/files/log4j-1.2.11.jar</systemPath></dependency>
2.2Maven项目引入同是Maven项目的依赖
想在Maven项目里引入同是Maven项目的依赖非常简单,步骤如下:
1.工程->右键->Run as ->Maven install,会将此Maven工程打成jar包,并且放置在本地Maven仓库中。
出现上图中提示,证明已经构建完成。
2.引用的时候,直接pom.xml文件右键,Add dependency,输入关键字,会优先从本地仓库中将此jar包查询出来,直接引用即可。
2.3Maven继承
当我们在一个Maven工程里需要的许多jar来自于另一个Maven工程,此时我们可以使用Maven继承,继承的方式如下:
假设我们现在有两个工程,父Maven工程为:MavenPlugin,子Maven工程为MavenExtends,此时我们想要MavenExtends工程下的pom.xml文件集成自MavenPlugin工程下的pom.xml文件。步骤如下:
1.将MavenPlugin的pom.xml文件的Packing修改为pom。(一般情况下必须为jar);
2.配置MavenExtends工程的pom.xml;
3.配置完成,点击保存即可。此时查看MavenExtends工程的pom.xml文件,增加<parent>页签(放在<project>页签中间),如下所示:
<parent><groupId>com.haibao</groupId><artifactId>MavenPlugin</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../MavenPlugin/pom.xml</relativePath></parent>
此时MavenExtends即可继承工程MavenPlugin下的所有jar包;
selenium_maven高级实战相关推荐
- Docker容器虚拟化技术---Docker高级实战(DockerFile)2
Docker容器虚拟化技术-Docker高级实战(DockerFile) DockerFile是一个文本格式的配置文件,用户可以使用DockerFile来快速创建自定义的镜像. 1. DockerFi ...
- 2018最新APP界面设计教程---手机ui高级实战案例 视频教程(价值320元)
课程简介: 适用人群 适合有基础的学员 学到什么 火星人UI设计培训结合大量的实战案例,从ICON的设计构思开始,到APP界面设计,全方面解析UI设计工作流程和设计理论 ...
- 千锋2018年最新php基础进阶加高级实战全套视频教程
==========课程目录=========== 14__RESTful API与服务器环境 13__千万级秒杀项目 12__Swoole课程 11__Laravel框架 10__微博登录_短信发送 ...
- 【2021版PHP高级教程-Swoole4.X从入门到精通全套高级实战】
众所周知,Swoole 和我们传统的 PHP 开发差别是有的,需要理解的概念也是有的.使用目前一些基于 Swoole 的框架开发的话,从开发习惯上和传统的TP 框架相差不多.根据官方介绍它是一个底层通 ...
- 网易微专业python数据分析统计服_40套大数据云计算高级实战精品,数据分析,数据仓库,数据爬虫,项目实战,用户画像, ......
40套大数据云计算高级实战精品,数据分析,数据仓库,数据爬虫,项目实战,用户画像,日志分析,Hadoop,Flink,Spark,Kafka,Storm,Docker,ElaticStack等视频教程 ...
- 微信小程序高级实战开发培训视频
JEECG社区<微信小程序高级实战开发培训视频> 课 程: 微信小程序高级实战开发培训视频 讲 师: 周俊峰.张加强 开课时间: 2016年12月06日开课 * ...
- 58-Vue高级实战
Vue高级实战 Vue-cli: 什么是Vue-cli: Vue cli是基于Vue的应用开发提供的一个标准的脚手架工具 为应用搭建基础的框架结构,提供插件.开发服务.Preset.构建打包功能 Vu ...
- 第十二章:Ozzie调度系统高级实战-CSDN就业班-专题视频课程
第十二章:Ozzie调度系统高级实战-26人已学习 课程介绍 1.Oozie核心原理与概念 2.Oozie安装与部署 3.Oozie调度MapReduce与Hive Job 4.Ooz ...
- 今天,学会这几个Vue高级实战技巧就够了!
前言 今天,我们来分享几个不可不知的vue高级实战技巧. 技巧 自动注册组件 我们平时可能这样引入注册组件.每次都得需要在头部引入,然后注册,最后在模板上使用. <template>< ...
最新文章
- 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...
- 数据、事实、实体、值对象、事务、不变性
- Linuxnbsp;rpmnbsp;命令参数使用…
- 中国致密气行业十四五前景分析及发展规划远景报告2022年版
- python 基础篇(一)--linux命令篇
- log4j2 mybatis 显示 sql 和 结果集
- BCC异或校验 Linux C
- 计算机二级考试开考多久能出来,【计算机二级】明天就要开考了,你们准备好了吗?...
- 使用JS清空fileupload 控件值
- php rgb,php颜色转换函数hex-rgb
- Apache Flink 在 bilibili 的多元化探索与实践
- java synchronized概念用法
- 生物图像处理软件_细胞分割
- 联想y7000 Linux显卡驱动,联想Y7000安装显卡驱动
- 2010不断创新的供应链应用模式
- python中单位转换_python的单位转换问题
- 【AP/AR】借项通知单和贷项通知单的区别
- 如何在BIOS中开启虚拟化技术
- vscode前端常用插件
- 构建一体化数字营销平台,助力医药企业实现销售转化能级大幅跃迁 | 案例研究