2023年6月21日发(作者:)

UI⾃动化测试(⼀)简介及Selenium⼯具的介绍和环境搭建⾃动化测试简介1.1何为⾃动化测试?  是把以⼈为驱动的测试转化为机器执⾏的⼀种过程,它是⼀种以程序测试程序的过程。换⾔之,就是以程序实现的⽅式来代替⼿⼯测试。1.2⾃动化测试分类  分为功能⾃动化测试和性能⾃动化测试⼀般所说的⾃动化测试是指功能⾃动化测试,是通过编码的⽅式,⽤⼀段程序来测试⼀个软件的功能,这样就可以重复执⾏程序来进⾏重复测试的⽬的。如果⼀个软件有⼩部分功能发⽣改变,只要修改⼀部分⾃动化测试代码,就可以重复对软件进⾏测试,从⽽提⾼测试效率。1.3做⾃动化测试应该满⾜哪些要求?  1.任务测试明确, 不会频繁变动

  2.每⽇构建后的验证测试

  3.⽐较频繁的回归测试

  4.软件系统界⾯稳定, 变化少

  5.需要在多平台运⾏相同的测试⽤例、组合遍历型的测试、⼤量的重复测试  6.软件维护周期长

  7.项⽬进度压⼒不太长

  8.被测系统软件开发⽐较规范, 能够保证系统的可测试性

  9.具备⼤量的⾃动化测试平台

  10.测试⼈员具备较强的编程能⼒

通常情况下,只要满⾜以下三种情况就可以开展⾃动化测试:软件需求变更不频繁、 项⽬周期较长、 ⾃动化测试脚本可重复使⽤1.4⾃动化测试流程1.4.1⾃动化测试的介⼊点:  ⽼式:⼀般是在系统测试阶段开始介⼊, 多⽤于系统测试的回归测试和性能测试 新式:开发开始概要设计评审就可以开始介⼊1.4.2⾃动化测试流程: 可⾏性分析>测试需求分析(来源于测试团队内部)>制定测试计划>⾃动化测试设计>测试脚本开发> ⽆⼈职守测试>提交测试报告>脚本维护阶段1.4.3⼿⼯测试优缺点⼿⼯测试的缺点:重复性、精确性、效率⼿⼯测试的优点:⼿⼯测试不可替代的地⽅⾄少包括 以下⼏个⽅⾯:测试⽤例的设计、经验和猜测错误能⼒、界⾯和⽤户体验测试、正确性的检查、⼈的思维和逻辑能⼒1.5⾃动化测试⼯具QTP:是quicktest Professional的简称, 是⼀款商业化的⾃动化测试⼯具。 提供了强⼤易⽤的录制回放功能。 ⽀撑B/S、 C/S两种架构的软件测试。Robot Framework:是⼀款python编写的功能⾃动化测试框架。具备良好的可扩展性,⽀持关键字驱动,可以同时测试多种类型的客户端或者接⼝,可以进⾏分布式测试执⾏。Selenium: 是⼀款⽤于Web应⽤程序测试的⼯具,它⽀持多平台、多语⾔、多浏览去实现⾃动化测试。Selenium⼯具介绍2.1Selenium⼯具简介Selenium是ThoughtWorks专门为Web应⽤⽽开发的⾃动化测试⼯具, 适合进⾏功能测试、验收测试,同时⽀持所有基于web的管理任务⾃动化。主要功能包括:测试与浏览器的兼容性,测试你的应⽤程序看是否能够很好得⼯作在不同浏览器和操作系统之上。测试系统功能,创建回归测试检验软件功能和⽤户需求。2.2Selenium特点: 开源、免费 多浏览器⽀持:Firefox、Chrome、IE、Opera 多平台⽀撑:windows、linux、MAC 对web页⾯有良好的⽀撑 简单(API简单)、灵活(⽤开发语⾔驱动) ⽀持分布式执⾏测试⽤例2.3Selenium⼯具组成是由⼏个⼯具组成,如下图所⽰:①Selenium IDE 是嵌⼊到Firefox浏览器中的⼀个插件,实现简单的浏览器录制与回放功能。实际场景中如何使⽤?快速的创建BUG重现脚本,在测试⼈员的测试过程中,发现了BUG之后可以通过IDE将重现的步骤记录下来,以帮助开发⼈员更容易的重现BUG。IDE录制的脚本可以转换成多种语⾔,从⽽帮助我们快速的开发脚本。②Selenium Gird是⼀种⾃动化测试的辅助⼯具,Gird通过现有的计算机基础设施,能加快web_app的功能测试,利⽤Gird,可以很⽅便的同时在多台机器上和异构环境中并⾏运⾏多个测试⽤例。其主要特点:并⾏执⾏,通过⼀个主机统⼀控制⽤例在不同环境、不同浏览器下运⾏,灵活添加变动测试机③Selenium RC是Selenium家族的核⼼⼯具, Selenium RC⽀持多种不同的语⾔编写⾃动化测试脚本, 通过Selenium RC的服务器为代理服务器去访问应⽤从⽽达到测试的⽬的。Selenium RC使⽤分Client Libraries和Selenium Server, ClientLibraries库主要⽤于编写测试脚本, ⽤来控制Selenium Server的库。Selenium Server负责控制浏览器的⾏为, 它主要包含3部分:Launcher、Http Proxy、Core。其中Core是被Selenium Server嵌⼊到浏览器页⾯中, 它本质是JS函数的集合, 通过对这些JS函数进⾏操作,实现⽤程序对浏览器进⾏操作。Launcher ⽤于启动浏览器,把Core加载到浏览器页⾯中,并把浏览器代理设置成为Selenium Server的HttpProxy。④WebDriver针对各个浏览器⽽开发, 取代了嵌⼊到被测web应⽤中的javascript, 与浏览器紧密集成。同时 WebDriver还利⽤操作系统级的调⽤模拟⽤户输⼊。Java+Selenium环境搭建环境搭建就以Maven为例,要⽤Maven这个插件,就得查看该插件是否已集成在⾃⼰使⽤的Eclipse中,查看⽅式如下:Window>Preferences,查看是否有Maven⽂件,若有,则说明已经集成好了(或已配置好了),可以使⽤,若没有,则需要⾃⼰⼿动配置。第⼀步:1.1新建⼀个Maven⼯程,File>New>Other1.2选择Maven>选择Maven Project>点击Next1.3弹出如下界⾯,默认下⼀即可 1.4在接下来的窗⼝中,选择maven-archetype-quickstart1.5此处需要填写信息,包名及⼯程名,随意⾃⼰填写1.6点击Finish后,就会⽣成⼀个⼯程,如下所⽰:第⼆步,下载Selenium需要的jar包2.2版本有很多,看个⼈选择,我下载的3.4.0版本2.3点击3.4.0,出现如下界⾯,把如下代码复制到所建⼯程的⽂件中2.4粘贴到⽂档中,保存便会⾃动下载

2.5下载完成后,可查看到刚下载的Selenium中包含的jar包,如下所⽰:第三步:环境已配置完毕,就去写第⼀个⾃动化代码吧。在百度输⼊框中输⼊12306并点击搜索,代码实现如下: 1 package ; 2

3 import ; 4 import ver; 5 import ment; 6 import Driver; 7

8 public class yihuqingjiu_test_12306 { 9

10 public static void main(String[] args) throws Exception {11 //chrom浏览器驱动的位置12 perty("","C:Program Files (x86)");13 //web驱动指向chrom驱动并创建对象driver14 WebDriver driver=new ChromeDriver();15 //获取⽹址16 ("");17 //浏览器最⼤化18 ().window().maximize();19 //kw是输⼊框的id,12306是在输⼊框中药输⼊的内容20 ement(("kw")).sendKeys("12306");21 //su是搜索按钮的id22 WebElement btn=ement(("su"));23 //点击事件24 ();25 //休眠时间26 (3000);27 //关闭页⾯28 ();29

30 }31

32 }

2023年6月21日发(作者:)

UI⾃动化测试(⼀)简介及Selenium⼯具的介绍和环境搭建⾃动化测试简介1.1何为⾃动化测试?  是把以⼈为驱动的测试转化为机器执⾏的⼀种过程,它是⼀种以程序测试程序的过程。换⾔之,就是以程序实现的⽅式来代替⼿⼯测试。1.2⾃动化测试分类  分为功能⾃动化测试和性能⾃动化测试⼀般所说的⾃动化测试是指功能⾃动化测试,是通过编码的⽅式,⽤⼀段程序来测试⼀个软件的功能,这样就可以重复执⾏程序来进⾏重复测试的⽬的。如果⼀个软件有⼩部分功能发⽣改变,只要修改⼀部分⾃动化测试代码,就可以重复对软件进⾏测试,从⽽提⾼测试效率。1.3做⾃动化测试应该满⾜哪些要求?  1.任务测试明确, 不会频繁变动

  2.每⽇构建后的验证测试

  3.⽐较频繁的回归测试

  4.软件系统界⾯稳定, 变化少

  5.需要在多平台运⾏相同的测试⽤例、组合遍历型的测试、⼤量的重复测试  6.软件维护周期长

  7.项⽬进度压⼒不太长

  8.被测系统软件开发⽐较规范, 能够保证系统的可测试性

  9.具备⼤量的⾃动化测试平台

  10.测试⼈员具备较强的编程能⼒

通常情况下,只要满⾜以下三种情况就可以开展⾃动化测试:软件需求变更不频繁、 项⽬周期较长、 ⾃动化测试脚本可重复使⽤1.4⾃动化测试流程1.4.1⾃动化测试的介⼊点:  ⽼式:⼀般是在系统测试阶段开始介⼊, 多⽤于系统测试的回归测试和性能测试 新式:开发开始概要设计评审就可以开始介⼊1.4.2⾃动化测试流程: 可⾏性分析>测试需求分析(来源于测试团队内部)>制定测试计划>⾃动化测试设计>测试脚本开发> ⽆⼈职守测试>提交测试报告>脚本维护阶段1.4.3⼿⼯测试优缺点⼿⼯测试的缺点:重复性、精确性、效率⼿⼯测试的优点:⼿⼯测试不可替代的地⽅⾄少包括 以下⼏个⽅⾯:测试⽤例的设计、经验和猜测错误能⼒、界⾯和⽤户体验测试、正确性的检查、⼈的思维和逻辑能⼒1.5⾃动化测试⼯具QTP:是quicktest Professional的简称, 是⼀款商业化的⾃动化测试⼯具。 提供了强⼤易⽤的录制回放功能。 ⽀撑B/S、 C/S两种架构的软件测试。Robot Framework:是⼀款python编写的功能⾃动化测试框架。具备良好的可扩展性,⽀持关键字驱动,可以同时测试多种类型的客户端或者接⼝,可以进⾏分布式测试执⾏。Selenium: 是⼀款⽤于Web应⽤程序测试的⼯具,它⽀持多平台、多语⾔、多浏览去实现⾃动化测试。Selenium⼯具介绍2.1Selenium⼯具简介Selenium是ThoughtWorks专门为Web应⽤⽽开发的⾃动化测试⼯具, 适合进⾏功能测试、验收测试,同时⽀持所有基于web的管理任务⾃动化。主要功能包括:测试与浏览器的兼容性,测试你的应⽤程序看是否能够很好得⼯作在不同浏览器和操作系统之上。测试系统功能,创建回归测试检验软件功能和⽤户需求。2.2Selenium特点: 开源、免费 多浏览器⽀持:Firefox、Chrome、IE、Opera 多平台⽀撑:windows、linux、MAC 对web页⾯有良好的⽀撑 简单(API简单)、灵活(⽤开发语⾔驱动) ⽀持分布式执⾏测试⽤例2.3Selenium⼯具组成是由⼏个⼯具组成,如下图所⽰:①Selenium IDE 是嵌⼊到Firefox浏览器中的⼀个插件,实现简单的浏览器录制与回放功能。实际场景中如何使⽤?快速的创建BUG重现脚本,在测试⼈员的测试过程中,发现了BUG之后可以通过IDE将重现的步骤记录下来,以帮助开发⼈员更容易的重现BUG。IDE录制的脚本可以转换成多种语⾔,从⽽帮助我们快速的开发脚本。②Selenium Gird是⼀种⾃动化测试的辅助⼯具,Gird通过现有的计算机基础设施,能加快web_app的功能测试,利⽤Gird,可以很⽅便的同时在多台机器上和异构环境中并⾏运⾏多个测试⽤例。其主要特点:并⾏执⾏,通过⼀个主机统⼀控制⽤例在不同环境、不同浏览器下运⾏,灵活添加变动测试机③Selenium RC是Selenium家族的核⼼⼯具, Selenium RC⽀持多种不同的语⾔编写⾃动化测试脚本, 通过Selenium RC的服务器为代理服务器去访问应⽤从⽽达到测试的⽬的。Selenium RC使⽤分Client Libraries和Selenium Server, ClientLibraries库主要⽤于编写测试脚本, ⽤来控制Selenium Server的库。Selenium Server负责控制浏览器的⾏为, 它主要包含3部分:Launcher、Http Proxy、Core。其中Core是被Selenium Server嵌⼊到浏览器页⾯中, 它本质是JS函数的集合, 通过对这些JS函数进⾏操作,实现⽤程序对浏览器进⾏操作。Launcher ⽤于启动浏览器,把Core加载到浏览器页⾯中,并把浏览器代理设置成为Selenium Server的HttpProxy。④WebDriver针对各个浏览器⽽开发, 取代了嵌⼊到被测web应⽤中的javascript, 与浏览器紧密集成。同时 WebDriver还利⽤操作系统级的调⽤模拟⽤户输⼊。Java+Selenium环境搭建环境搭建就以Maven为例,要⽤Maven这个插件,就得查看该插件是否已集成在⾃⼰使⽤的Eclipse中,查看⽅式如下:Window>Preferences,查看是否有Maven⽂件,若有,则说明已经集成好了(或已配置好了),可以使⽤,若没有,则需要⾃⼰⼿动配置。第⼀步:1.1新建⼀个Maven⼯程,File>New>Other1.2选择Maven>选择Maven Project>点击Next1.3弹出如下界⾯,默认下⼀即可 1.4在接下来的窗⼝中,选择maven-archetype-quickstart1.5此处需要填写信息,包名及⼯程名,随意⾃⼰填写1.6点击Finish后,就会⽣成⼀个⼯程,如下所⽰:第⼆步,下载Selenium需要的jar包2.2版本有很多,看个⼈选择,我下载的3.4.0版本2.3点击3.4.0,出现如下界⾯,把如下代码复制到所建⼯程的⽂件中2.4粘贴到⽂档中,保存便会⾃动下载

2.5下载完成后,可查看到刚下载的Selenium中包含的jar包,如下所⽰:第三步:环境已配置完毕,就去写第⼀个⾃动化代码吧。在百度输⼊框中输⼊12306并点击搜索,代码实现如下: 1 package ; 2

3 import ; 4 import ver; 5 import ment; 6 import Driver; 7

8 public class yihuqingjiu_test_12306 { 9

10 public static void main(String[] args) throws Exception {11 //chrom浏览器驱动的位置12 perty("","C:Program Files (x86)");13 //web驱动指向chrom驱动并创建对象driver14 WebDriver driver=new ChromeDriver();15 //获取⽹址16 ("");17 //浏览器最⼤化18 ().window().maximize();19 //kw是输⼊框的id,12306是在输⼊框中药输⼊的内容20 ement(("kw")).sendKeys("12306");21 //su是搜索按钮的id22 WebElement btn=ement(("su"));23 //点击事件24 ();25 //休眠时间26 (3000);27 //关闭页⾯28 ();29

30 }31

32 }