maven测试项目总结

作者 : 开心源码 本文共3343个字,预计阅读时间需要9分钟 发布时间: 2022-05-11 共106人阅读

这些天都在应付期末自动化测试的考试,题目:使用maven项目测试一个飞机订票系统。

我最终成功的软硬件配置是:myeclipse8.5+jdk1.7+firefix24.0+strawberry+webTours

具体操作步骤: (所有安装文件都是以32位为主,即便我的笔记本是64位。之前就安装过一次jdk1.7的64位,结果仍旧报51version错误)

安装myeclipse8.5 、安装jdk1.7并配置环境变量、安装firefox24,最好默认安装路径、安装starwberry 、将webtours文件夹解压至strawberry安装路径:

运行webtours文件夹中的starserver.bat文件,再双击运行mercuryWebTours,

注意进入到浏览器后将网址中的mercuryWebTours改为WebTours,像这样:

测试可以否进入购票系统的登录页面测试成功后

myeclipse导入selenium2-gettingStarted项目

我个人对maven项目的了解:通过pom.xml配置,加载需要的jar包,再通过调使用testng.xml文件运行测试案例代码,得到的结果报告自动导入到target中的report文件夹中。

最重要的是pom.xml文件中的内容:

环境配置很重要,了解pom.xml中的信息很重要(强烈建议不要自己外部引使用jar用,最好通过pom.xml自动注入)。

导入需要的jar包,maven代码网址:http://mvnrepository.com/。

将maven方框中的代码复制到pom.xml中,运行后会自动导入jar包到maven Dependencies库中。

我遇到的最大的几个问题有:

1、即便换成了jdk1.7版本,环境配置也改了,结果还是报错。度娘给的答案7788,都试了一遍,还是错的,最后抱着试一下的心态,自己尝试修改了一下修改myeclipse自带的maven运行环境,错误会决。报51version错,就是版本不协调,调各种运行环境的jdk版本应该是能的。说不定瞎猫就撞见死耗子呢,哈哈。

2、我写了三个测试使用例,结果只运行了2个,另外一个直接就跳过了,我就想啊,再怎样环境配置错误也应该是三个利使用一律出错吧,没理由直接不运行啊,后来发现是@test注释的包导错了。将:import org.junit.Test;换成import org.testng.annotations.Test;即可以了。终于3个测试案例都报错了,哈哈,还挺开心的,至少都运行了。

3、对于出现的NoClassDefFoundError错误真的是找了好久好久好久好久。我发现它并不是某一个类未定义或者是找不到,我点开所有我外部引使用的jar包,发现都没有.class文件,所以此刻怀疑是引入的路径不对,可可以是含有中文的缘故,遂将放jar包的文件夹改成changyongbao,还是报错,没有处理。

那怎样办呢?百度呗,csdn里有一位大神出过这个问题,说是反编译的错误,说没有反编译文件一定没办法将.class文件显示出来,一定就找不到source咯,我一想,对啊,挺有道理的,于是又各种找教程下文件,终于.class文件可以显示出来了。但是。。。。。。怎样还是NoClassDefFoundError错误呢?

而后我就找到了有一位大神的博客,附上此链接:https://blog.csdn.net/zeng622peng/article/details/78228080,这里面含有所有可可以出现NoClassDefFoundError错误的可可以,并有处理方法。我那个小心脏啊,抖三抖,激动啊,这就是希望的曙光啊。于是满怀希望的仔仔细细的将整片文章看完,三脸懵逼啊,完全看不懂,怎样呢,硬着头皮去研究呗,后来的后来,似懂非懂的觉得可可以是自己classPath文件的问题,在案例可以运行的地方输出项目运行环境,结果,可以输出啊~就是找不到错,不过就算是这样,也不可以阻止我对这位大神的膜拜。没事就来研究他的这篇博客,哈哈。

再后来,吃完午饭回来,脑袋抽风般,把通过外部引入的包删掉,进去http://mvnrepository.com/网站,搜索我需要的包,换成它提供的代码,复制到pom.xml文件中。结果,哈哈,一个原价引使用外部包的java程序再此之后可以够运行了,感觉胜利就在眼前啊。

4、尽管又报错了,但至少有成效了不是?程序显示无法下载selenium-server-standalone-2.46.0.jar,首先找pom文件确定代码没有错,而后进入网址:http://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-server-standalone/2.46.0/selenium-server-standalone-2.46.0.jar,发现的确没有这个网页,搜索http://repo1.maven.org/maven2/org/seleniumhq,一步步的查找确定没有jar文件的下载。

于是在http://repo.spring.io/plugins-release/org/seleniumhq/selenium/selenium-server-standalone/2.46.0/手动下载selenium-server-standalone-2.46.0.jar和selenium-server-standalone-2.46.0.pom,并将其放入到C:\Users\Lenovo\.m2\repository\org\seleniumhq\selenium\selenium-server-standalone\2.46.0中,此错误会决。

5、又报新错NoSuchMethodError,没事,我已经习惯了,抱住胖胖的自己不哭。再次问可敬的度妈妈找到这位大神的文章:https://www.cnblogs.com/xiaoMzjm/p/4566672.html,大致是说jar包冲突了,两个不同的jar里有相同的class文件,但是运行时搜索的第一个jar中的class文件里没有那个方法,所以报错。于是我按照大神的方法,找到了那两个jar,分别是selenium-server-standalone-2.46.0.jar和selenium-api-2.3.0.jar,并打开它们相同命名的class文件,分别搜索找不到的方法,发现selenium-server-standalone-2.46.0.jar中有这个方法,selenium-api-2.3.0.jar中没有,答案很显著,就是要把selenium-api-2.3.0.jar排除,按大神的指教,将selenium-api-2.3.0.jar排除后运行,报程序解析变异的错,妈呀,这个jar包可不可以排除,于是又给装了回去。

现在的问题就是:我需要运行的是selenium-server-standalone-2.46.0.jar中的.class文件,系统默认的是先运行selenium-api-2.3.0.jar中的,而selenium-api-2.3.0.jar有不可以exclusion,那怎样办?

也是过了大半时间没有处理,现在想起来,总觉得当时的自己傻到了一种境界。当需要加载一个新的Jar包时,Maven会从配置文件中读取仓库位置,并按照优先级逐一从仓库中判断能否有指定的依赖文件,假如有,则加载,假如没有,则继续搜索。它的读取也一样,只需先读取selenium-server-standalone-2.46.0.jar中的内容,问题不就处理了嘛,于是在pom.xml文件中将selenium-server-standalone挪到了operadriver(selenium-api-2.3.0.jar通过它加载)的前面。

问题处理,测试使用例成功跑出。

最后一刻,提交作业。感想颇多,一路走来不容易啊。

来自一个小渣渣的总结,有不对不妥的地方请大家提出来,我们共勉哈。大神,请收下我的膝盖,猥琐。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » maven测试项目总结

发表回复