51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2820|回复: 6
打印 上一主题 下一主题

Selenium Web Driver自动化测试(java版)系列上半部分(1) - 初识java

[复制链接]
  • TA的每日心情
    开心
    2018-8-16 07:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-8-15 20:26:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    [因为之前图片没上传成功 特此重发]欢迎学习我制作的java版selenium web driver自动化测试教程。selenium web driver是web自动化测试的必修课程,之前跟不少朋友讨论,很多人都说对于编程没信心,太难。可想搞自动化躲不开编程,早晚得跳过这个坎。论坛里有不少大牛,我看也有不少人讲selenium,大家都是为了测试界贡献力量,我也想帮助那些需要学习自动化测试的朋友,就从我自己的知识水平和视角编了一套教程拿出来跟大家讨论。这个教程分上下两个部分,上半部分是java的编程基础知识,下半部分是selenium应用。我会带着大家一步一步走,从写一句简单的代码到设计规划一个实战项目,尽量做到表达清晰无误,内容详细全面,最关键的是易懂。怎么个易懂法呢?反正我试着给我妈讲java她懂了。所以,不会编程的,对编程的恐惧的朋友,经历过“从入门到放弃“的朋友,这个教程是我接触了很多初学者后慢慢总结出来的,会非常适合你们,学完整套教程后你就会对selenium自动化测试有一个较为深刻的认识,对写代码做到入门,不恐惧,而且可以在工作时直接上手做项目。我也会把文章标题都写得很清楚,大家即便忘了某些知识点也能快速查找到。当然,selenium web driver知识面也很广,很难做到面面俱到,遗漏的或是出错的地方还请大家指正。不管怎么样,大家能有所收获就是对我最大的鼓励。

    从这篇文章开始我们就介绍上半部分知识点:java语言。首先一两句话概括下什么是程序。程序就是为实现一个功能写的代码。电脑上运行的东西大多数都是程序:比如看视频的网站,办公用的软件,平时玩的游戏。这些程序运行在电脑或手机上,用来实现某些功能。所以,更直白点说,程序其实就是告诉计算机要做什么事情。你写了程序,电脑一读,做了个优酷,大家就可以看片儿了;你又写了个程序,电脑一读,做了个fifa足球,大家就可以玩游戏了;最后你又写了个程序,电脑一读,做了个病毒,自己就挂了。知道了吧,电脑通过读这些程序知道要干什么。

    那你怎么写这些程序呢?你不能直接往电脑上贴个便条,电脑不懂,有人说往记事本里写中文,那也不靠谱,电脑还是不懂。电脑很挑剔,你得写它看得懂的语言。为此世界上诞生了很多为电脑设计的语言,比如C,java,php,ruby,python。咱们这个课是java,用java编写selenium代码很方便,因为它是一种很流行上手很快的语言,而且会了java很多类似的语言学起来很快。java是在90年代初问世的,当时有个公司叫Sun,太阳,他们公司里有个叫高司令的人,不过他不姓高,人家是个歪果仁,James Gosling。当然,咱们是翻译过来的。这个高司令带着他的小伙伴们开发出了这个语言,轮到起个名字的时候,大家都希望这门语言像参天大树一样稳固、霸气、牛b,那就叫橡树吧,英文是oak。但非常不幸,这名字已经被注册了,看来脑回路清奇的不止高司令一人。没办法,还得继续苦思冥想。这时候突然一个人灵机一动,想到橡树生长在菲律宾附近的爪哇岛,然后就说咱们就管它叫java吧,大家说行啊,这名字好。于是就叫java了。又因为这些人是在喝咖啡的时候决定的,所以java的标志就是一杯热腾腾的咖啡。
    咱们把java程序写在文件里交给电脑去读,电脑在最一开始也不懂,怎么办呢?java提供了一个叫做jdk的工具,可以解决这个问题。jdk的全称是java developer kit,翻译过来就是开发者工具包。顾名思义,只要是跟java有关的,都可以用它解决。jdk包括三个部分,第一个叫jre,全称是java runtime environment,意思是java程序的运行环境。咱可以这么理解:把java程序看成是一个游戏。jre指的就是游戏需要什么环境才能运行。你要玩网游得需要网络吧?要玩单机得需要光盘插入游戏机吧?你不能把光盘直接插你们家墙里吧?读不了,必须得有游戏机这个环境。盗版除外;第二个叫java执行工具,相当于玩游戏时的手柄键盘,没手柄没键盘这些必要的工具你玩不了游戏,游戏开始小人动不了。这里面有个叫javac.exe的小东西就可以把java程序翻译成电脑看得懂的语言,它又叫做编译器;第三个叫类库,包含了开发人员已经开发好的模块,到时候你直接用就行了。你不用自己再编写了。这就好比你游戏里的外挂或秘籍,直接一用省了不少事。这个我到时候会带着大家学一些重要的,常用的。

    现在我就带着大家下载配置jdk。由于现在Sun公司已经被甲骨文Oracle收购了,所以我们可以去甲骨文官网下载最新版本。直接搜索jdk并打开官网,你会看到各种系统上的jdk,有windows的,linux的,mac的,按照你的操作系统下载,注意区分位数,32位和64位不要混。我们教程用的是windows。

    下载后双击安装,等待时间不会太久。安装完了jdk,我们看一下目录:

    对应刚才讲的那三个组成部分,第一个是bin目录,指的就是刚才说的java执行工具,编译器javac.exe就在bin目录下:

    第二个就是jre目录,指的是刚才讲的运行环境,比如java.exe就是个重要文件。编译器javac.exe把一个java文件编译成计算机懂的文件,然后java.exe用于执行这个编译后的文件:

    lib就是第三个部分,代表类库:

    装完jdk还没完,还需要配置一下java的环境变量。这步很多人容易犯错误,导致不能运行。这块我说得详细点,把截图放上来:

    第一步,打开环境变量对话框 -> 点击环境变量 -> 在系统变量那个列表下新建一个变量叫JAVA_HOME,里面填上jdk的安装路径:

    第二步,系统变量列表中还有一个变量叫Path,把这两个路径添进去:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;前后顺序没关系,但要注意变量值之间用分号隔开:

    第三步,系统变量列表中还有一个变量叫CLASSPATH,把这三个路径添进去:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;有人说这不是俩么?注意,最前面有个点也是一个路径,千万别落下:

    这三步完成就算都配完了。打开cmd命令行,在哪个目录下都可以,直接输入java -version,如果显示版本号就证明安装配置成功:

    好,如果一切正常,接下来我们就该了解java是怎么工作的了。首先,还是像刚才说的,java程序会被jdk的编译器先编译成计算机懂的语言,这个编译器就好比一个翻译官一样,把.java文件直接翻译成一个后缀名为.class的文件,用于java.exe执行。不管你用的是Windows还是苹果,java程序都不在上面直接运行,而是用jdk提供的虚拟机(Java Virtual Machine,简称JVM)来运行。JVM运行在操作系统之上,打个形象点的比喻,假如我把虚拟机比喻成一辆车,java.exe就是这辆车的老司机。老司机拿着被javac翻译官翻译好的.class文件开车,车走在一个叫Windows/苹果/别的操作系统公路上,而老司机一边开车一边读.class文件。最后,老司机在车里把文件读完,生成最后结果:

    这就是java的运行过程,简单来说就两步 - 编译和执行。下面开始讲怎么写代码。我们把java程序写到文件里,用来写程序的工具就叫做开发环境。记事本就是java最初的一种开发工具,咱们可以把程序写到记事本里。windows自带了个notepad,后来又有人开发了个notepad++,高级了一点。但不论如何,你要是开发大型项目用记事本非常不方便,于是市面上有了别的开发工具,其中一种叫做eclipse的工具很流行,也是咱们这个教程中要用到的。我计划是咱们一开始的一段时间先用记事本来熟悉java的写法,必要的时候我再带着大家转到eclipse上。

    现在咱们就先用记事本做个练习。你先不用管我写的是什么,不懂没关系,下一篇你就都懂了。我主要就是想向大家演示一遍java程序是如何被计算机读取运行的。在电脑任意位置创建一个叫JavaIntro的文件夹,里面创建一个叫Test.java的文件,并用notepad++打开。然后里面粘贴如下代码:

    保存文件,这就是我们的原始java代码。然后请javac.exe编译:cmd打开命令行,转到刚才创建的文件夹下,输入javac Test.java,注意javac不用加后缀名.exe,而且和Test.java中间有个空格。按回车,会发现同一个文件夹下生成了Test.class文件:

    .class文件一旦生成就证明编译成功,计算机可以阅读了。最后请java.exe来执行.class文件。同样,还是不用后缀名,直接输入java Test,按回车:

    因为这步执行的是.class文件,所以Test后面也不用写后缀名了,打印出来的结果就是程序中System.out.println()里面的内容。System是系统,print是打印,这句话的意思就是从系统终端打印。暂时不理解没关系,先记住这句话,以后的课程我会带着大家慢慢理解。这就是java运行过程的一个演示,下篇文章我们介绍java的变量以及类型转换。

    这篇文章的源代码是JavaIntro项目,位置在https://github.com/cslm/cslm.selenium.java/tree/master/JavaIntro
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏2
    回复

    使用道具 举报

    该用户从未签到

    5#
    发表于 2018-9-5 10:40:31 | 只看该作者
    收藏下                        
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-3-19 10:34
  • 签到天数: 26 天

    连续签到: 2 天

    [LV.4]测试营长

    6#
    发表于 2018-9-11 09:49:11 | 只看该作者
    看了,非常简单易懂,期待下一篇
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 06:23 , Processed in 0.070393 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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