精华内容
下载资源
问答
  • Web自动化测试工具选择

    千次阅读 2019-09-23 10:13:29
    1. 了解Web自动化测试常用工具 2. 熟悉Selenium的特点 1. 主流的Web自动化测试工具 1. QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试。 2. Selenium(本阶段学习) Selenium是一个开源的...

    目标

    1. 了解Web自动化测试常用工具

    2. 熟悉Selenium的特点

    1. 主流的Web自动化测试工具

    1. QTP

    QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试。

    2. Selenium(本阶段学习)

    Selenium是一个开源的web自动化测试工具,免费,主要做功能测试。

    3. Robot  framework

    Robot  Framework是一个基于Python可扩展地关键字驱动的测试自动化框架。

    2.什么是Selenium

    Selenium是一个用于Web应用程序的自动化测试工具;中文的意思(硒)

    2.1 Selenium特点

    1. 开源软件:源代码开放可以根据需要来增加工具的某些功能

    2. 跨平台:linux、windows、mac

    3. 支持多种浏览器:Firefox、Chrome、IE、Edge、Opera、Safari等

    4. 支持多种语言:Python、Java、C#、JavaScript、Ruby、PHP等

    5. 成熟稳定:目前已经被google、百度、腾讯等公司广泛使用

    6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

     

    2.2Selenium发展史【了解】

     

    展开全文
  • Web自动化测试实战(一)

    万次阅读 多人点赞 2019-08-23 15:41:39
    一丶认识web自动化测试 1. 什么是自动化测试? 2.为什么进行自动化测试? 3.自动化测试的分类 二丶元素定位 1.为什么要学习定位元素? 2.元素定位的工具或手段有哪些? 3.环境及工具 4.css选择器 一丶认识web...

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

    目录

    一丶认识web自动化测试

    1. 什么是自动化测试?

    2.为什么进行自动化测试?

    3.自动化测试的分类

    二丶元素定位

    1.为什么要学习定位元素?

    2.元素定位的工具或手段有哪些?

    3.环境及工具

    4.css选择器


    一丶认识web自动化测试

    1. 什么是自动化测试?

    自动化测试的概念:

    • 软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要组成部分,能够完成许多手工测试无法完成或者难以实现的测试工作,正确合理的实施自动化测试,能够快速全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件的发布周期

    自动化测试的历史:

    • 自动化测试就是任何利用工具来辅助的测试,几乎在计算机工业产生的第一天,这种测试就出现了。而且历史上从来没有出现过“测试自动化取代测试工程师工作”这种事情发生,除非你完全忽略测试人员们的真正工作。 基于同样的原因,自动空间探测器从来都不是用来“取代太空科学家的工作”,他们只是拓展了科学家的探索范围。自动化测试也是意味着拓展了测试者的探索范围。 测试自动化根本就不是新生事物,在很久以前,大约在上世纪40年代末期。开发人员自己测试程序。到了六十年代,关于测试的论文都是在论述开发人员如何测试他们自己的程序。测试(test)和调试(debug)这两个概念也没有被区分开。随着软件系统的规模越来越大,独立测试的理念还是变得时髦起来。在1972年的Chapel Hill,关于软件测试的第一次会议召开,这次会议推动了软件测试开始作为独立于开发的技术被讨论。 不过在这个会议上,我想他们把一件事情搞错了。就是他们对测试自动化寄予了很多期望和热情。这种期望最后没有成功实现,不过不是因为缺少实践,而是缺乏足够好的理解。 他们没有理解的,同时也是许多同时代程序员没有理解的是:好的软件测试,天然的,必然的是一种人类活动,必然的,而不是偶然的。测试是一种社会活动,一种心理活动。软件越复杂,人在使用和识别软件问题上的作用就越大。但是Chapel Hill会议被那些受训练为程序员和电子工程师的人占据了,这个会上缺乏那些懂得如何去思考的人。 受训的独立测试人员的理念要比自动化测试的理念还要新,但是和测试自动化比起来,这个理念的接受程度还不够,因为对测试人员的培训实在是太糟糕了! 所以有人理解测试是一种简单的技术,测试就是保证对API的调用不会让程序像个不受控的野兽一样滚到不知哪里去。这种理念还在那,比如说微软。我被告知,Microsoft Office,一个仍然在膨胀中的软件,是由那些没有系统学习过软件测试的开发人员,在那些“自动化测试工具”的支持下写出来的。 测试自动化无法再现测试工程师构想测试、控制测试、修改测试、观察和评估产品时的那些创造性思维。测试自动化不能完成那些高质量的测试。所以,测试自动化从来就不意味着:把那些测试工程师提供的服务自动化。 总之一句话,测试自动化意味着使用测试工具自动化测试是个古老的理念

    2.为什么进行自动化测试?

    自动化测试主要有这么些好处:

    1)缩短测试周期

    计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。

    2)避免人为出错         

    测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误       

    3)测试信息存储

    自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便

    4)轻易获取覆盖率

    自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作。

    5)其他

    自动化测试可以是实现自动或者定时执行

    自动化测试的方向是对的,而且趋势也是如此,但是有些自动化实现不了的还是会手动测一把

    3.自动化测试的分类

    1.整体分类:

    1)自动化功能测试

    2)自动化性能测试

    2.自动化功能测试的分类:

    1)单元测试(程序员搞定)    

    2)功能测试              

    3)接口测试

    大中型项目或长期项目可以采用自动化测试

    3.性能测试主要是使用测试工具

    Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。

    为了测试一个web站点的服务能力,需要模拟上千上万的请求(比如打开浏览器访问站点),人的速度是远远达不到这样的操作的

    4.web自动化条件和使用范围

    1.使用自动化的前提条件

    1)手动测试已经完成,后期再不影响进度的前提下逐渐实现自动化     

    2)项目周期长,重复性的工作都交给机器去实现     

    3)需求稳定,项目变动不大     

    4)自动化测试脚本复杂度比较低     

    5)可重复利用

    2.使用自动化测试的场景     

    1)频繁的回归测试     

    2)冒烟测试     

    3)互联网迭代频繁     

    4)传统行业需求变化不大,应用频繁     

    5)性能测试

    5.web自动化常用的工具

    1.常见的自动化web测试工具:

    1)QTP(收费)

    QTP是Mercury公司的Quick Test Professional的简称,是一种自动测试工具。     

    2)Selenium(开源)       

    ThroughtWorks一个强大的基于浏览器的开源自动化测试工具,通常用来编写web应用的自动化测试   

    3)RFT(收费)

    IBM Rational Test Professional的简称,是一款先进的自动化的功能和回归测试工具,使用与测试人员和GUI开发人员,基础是针对Java,.NET的对象计数和基于web应用程序的录制,回放功能。

    4)Watir(开源)         

    使用Ruby实现的开源web自动化测试框架,小巧灵活     

    5)Sahi(开源)         

    印度一家公司开发的web自动化测试工具,简单易用,支持Ajax和web2.0

    6.QTP与Selenium的比较

    • Selenium是开源的、免费的,QTP是商业版、收费的
    • Selenium支持java/python/ruby/php等,QTP早期版本只支持vbs
    • Selenium只能测试浏览器,QTP则都可以
    • Selenium支持操作系统多,而QTP只支持Windows
    • Selenium支持各大主流浏览器:I.E./Firefox/Chrome,而QTP只支持I.E. 

    7.web自动化的前景

    软件测试职业发展方向,大体上可以分为管理路线、技术路线、管理+技术路线。

    测试初级阶段

    测试工程师,属于软件测试职业生涯的初级域,其适用范围是入行软件测试3年内的常规测试从业者,其主要工作内容是按照测试主管(即直接上司)分配的任务计划,编写测试用例、执行测试用例、提交软件缺陷,包括提交阶段性测试报告、参与阶段性评审等。

    管理+技术路线

    首先是常规路线,这条发展路线要求管理与技术并重,因为软件测试的行业特点决定了这个因素:测试工程师向上晋升到测试主管、测试经理、测试总监,直至咨询域的更高方向!

    测试主管是企业项目级主管,对于中小型软件公司也可以是企业级主管,属于中级发展域,适用范围是2到5年职业经验的测试从业者。其工作内容是根据项目 经理或测试经理的计划安排,调配测试工程师执行模块级或项目级测试工作,并控制与监督软件缺陷的追踪,保证每个测试环节与阶段的顺利进行。严格来说,这个级别更多属于测试的设计者,因为企业的测试流程搭建是由更高级别的测试经理或相关管理者来做的,测试主管负责该流程的具体实施;而更多的工作,是思考如何 对软件进行更加深入、全面的测试。测试主管比较有创造性的工作内容就是测试设计,而恰恰很多公司忽略了或没有精力来执行此工作内容!应该说,在一个企业里做了3年左右测试工作的人员,很容易晋升到该职位,而之所以晋升,是与个人测试技术的过硬、测试方法的丰富,加上对测试流程的监控力与执行力的职业素质息息相关!

    测试经理是更高级别的测试管理者,属于高级测试方向域。对于大中型软件公司,该职位尤为重要,并且对其职业要求也比较高,一般适合4到8年的测试从业 者,在管理与技术能力双双比较成熟的情况下,可以结合具体环境晋升到该级别。测试经理负责企业级或大型项目级总体测试工作的策划与实施。测试经理除了需要统筹整个企业级或项目级测试流程外,还要对于不同软件架构、不同开发技术下的测试方法进行研究与探索,为企业的测试团队成员提供指导与解决思路,同时还要合理调配不同专项测试的人力资源(如业务测试工程师、自动化测试工程师、白盒测试工程师、性能测试工程师),对软件进行全面的测试;另外,一些企业里,测 试经理还需要与客户交流与沟通,负责部分的销售性或技术支持性工作。

    测试总监,属于常规发展路线的最高域,该职位一般在大型或跨国型软件企业,或者专向于测试服务型企业有所设立,一般设立测试总监的企业,该职位都相当于CTO或副总的级别,是企业级或集团级测试工作的最高领导者,驾驭着企业全部的测试与测试相关资源,管理着企业的全部测试及质量类工作。而其职业要求,也是技术与管理双结合。

    技术路线

    技术路线中级域

    技术路线,划分为三个半方向,分别是自动化测试工程师、白盒测试工程师、性能测试工程师和认证测试工程师;前三者适用于通用软件测试领域,认证测试工程师乃嵌入式测试领域职位,至少目前仅出现在嵌入式领域。

    自动化测试工程师,定义在功能测试范畴,指通常所说的依靠自动化测试工具进行软件黑盒测试的工程师。从大环境讲,自动化测试是软件测试执行阶段的必然趋势,社会对于软件测试的认可度以及对自动化测试人才的需求必将日益增加。

    白盒测试工程师,定位于在软件测试周期的单元测试阶段对软件进行的代码级测试的人,包括代码走读、代码功能与逻辑测试、代码内存泄漏检查、代码运行效率检查、代码测试覆盖率分析等。如果说,自动化测试只是依靠脚本语言完成测试脚本编写与调试的过程(因为自动化测试工程师的工作重点不在编写脚本),对于自动化测试工程师的技术要求要相对偏低的话,那么白盒测试工程师就要对大型程序开发语言的完全掌握,因此其技术要求相对偏高!

    性能测试工程师,即在系统测试阶段、功能测试后对软件系统性能指标进行采集分析和运行效率检测的人。在一个尽量压缩的测试流程里,功能测试可以手工进行,白盒测试可以不做,但是性能测试必须要做,除非该软件非网络类软件即单机版软件!软件测试,从宏观上可以划分为三个大方面:功能测试、性能测试、安全 性测试,功能测试说明软件做对了,功能测试+性能测试说明软件做好了,三者结合起来说明软件做的非常好!安全测试暂且抛之不提,这是下一个发展域的内容, 但是为了把软件做好,为了真正保证软件的质量,性能测试绝不容忽视;只因目前很多企业由于时间、成本、人力条件的限制,暂且不做性能测试。性能测试工程师相对来说,是三个技术路线里技术要求最高的,因为软件的性能瓶颈归根结底落实到代码的运行效率这个问题上,因此性能测试要做好,性能测试工程师起码要懂开发;而为了发现性能问题,要懂软件开发架构;为了定位性能问题,要懂操作系统、网络协议、应用服务器乃至数据库的原理与使用;为了最终解决性能问题,要根据定位的问题有针对性的对代码、操作系统、网络架构、服务器、数据库进行优化!当然性能测试是一个系统工程师,绝对不是一两个人的事情,对于常规性能测试 工程师,具备定位性能问题的能力即可。

    技术路线高级域

    进入技术路线的高级域,根据中级域的四个路线,可以细分成五个路线,分别是资深自动化测试工程师、资深白盒测试工程师、资深性能测试工程师、安全性测试工程师、标准化工程师,这些高级技术类人才完全与常规测试经理平齐,属于软件测试职业发展高级域。

    资深自动化测试工程师由自动化测试工程师晋升而来。如果说常规自动化测试工程师只是负责自动化测试脚本本身的设计与开发,那么资深自动化测试工程师的工作内容就是自动化测试这项工作的实施!也就是说,录制脚本-添加验证点-回放脚本只是最初始的自动化阶段,要在企业实施自动化测试,要有资深自动化测试工程师来设计数据驱动,开发测试框架,甚至一些企业内部自主开发小型测试工具(而非商业工具)的先例,这些也都是建立在资深自动化测试工程师具有深厚的技 术底蕴后,主导其他人员协调完成的事情。

    资深白盒测试工程师,其工作内容包含常规白盒测试工程师的内容,除此之外,要协助测试经理或测试总监攻关测试方法与技术性难题,因此其技术水平更加雄厚。如果常规白盒测试工程师是停留在某种程序设计语言类型的代码级测试,那么资深白盒测试工程师就要脱离程序设计语言本身,结合不同架构、多种开发技术交 互的情况下,寻找代码测试方法,并具有对代码优化的能力。

    资深性能测试工程师,来源于常规性能测试工程师,按照常规性能测试工程师的技术要求,资深性能测试工程师应该具备性能测试整体方案的设计能力,以及软件系统性能问题定位和性能优化的能力!除此之外,也要对主流的软件开发模式下的应用系统具有敏锐的洞察意识和感知意识。

    安全性测试工程师,其实从性能测试工程师衍生出来,因为只有具备性能测试经验的人,才对软件的开发模式、实现架构和技术本身充分了解,才会感知和预见软件系统存在的安全漏洞,加上其本人是测试出身,才知道如何通过系统漏洞尝试攻击软件系统,达到测试的目的。目前国内软件行业对于安全性测试的认识 尚未清晰,该职业也更没有普及,一般只限于军事类、机密类、防病毒类或其他高安全性软件的测试工作中。

    技术路线专家域

    在技术路线,向上继续提升的方向,我们称之为“技术专家”;如果说前面描述的技术职位的所涉范围都定位在企业内部,即企业级资深性能测试工程师,那么 技术专家,我们可以看作是领域级专项人才!随着软件测试行业的职位不断细化,每个人在自己擅长的领域走向深入,都可以成为该领域的技术专家,技术专家在自已经营的领域里,具有个人独到的见解和深厚的技术实力,而这类人才可以不再从事具体的测试工作,而是提供行业性测试技术咨询、培训等,为软件测试整体行业的发展,起到了鲜明的带头作用。

    管理方面

    管理方面中级域

    从事了1到3年左右的常规测试工程师,在经过对个人性格特点剖析后,如果认为自己是一个倾向于“高管理-低技能”的类型,那么想要实现自己的职业提升,可以向中级发展域的配置管理工程师、质量保证工程师、业务测试工程师转型。

    配置管理(SCM)与质量保证(SQA)同是CMM中的关键过程域(KPA),也同是现代软件工程里的必要角色,与软件测试同属软件开发团队的重要组成部分。只因这两个角色在软件工程里的人员配比数量相对较少,还不如软件测试这样规模化乃至于形成行业,而最多是一个职业;另外一个社会现象是,企业很少 直接从社会直接招聘配置管理工程师和质量保证工程师,而通常的做法是从企业内部的现有测试员工队伍里选拔,而转型后的测试工程师,就成为SCM或SQA。 分析其原因,我们可以感知,SCM、SQA与软件测试工程师都是关注于软件质量的相似职位,社会对于配置管理、质量保证的定义和工作内容并未普及,与其直接从社会招聘“0”基础的人来培养,倒不如从软件测试人员里升华!一般来说,这两种职位的上报对象是项目经理或相同级别管理者。

    转型后的配置管理与质量保证工程师,一定要转变一个意识,那就是常规测试工程师的工作范围很大一部分(不是全部)只限于测试流程,而配置管理和质量保证的工作范围是面向整个软件开发流程,二者的职业要求都非常重视软件工程知识体系的建立和软件开发总体流程的实施能力。由于配置管理工程师除了企业配置管理流程的搭建与实施外,一般会涉及配置管理工具的管理与维护,而质量保证工程师更多的工作是软件开发流程的控制与维护,故而配置管理对技术的要求稍高于质量保证。

    业务测试工程师,定义为面向行业类软件业务逻辑与工作流测试的人员。当前软件开发类型,很大一部分是行业类软件的应用,如ERP、 SCM、CRM、OA、电信、金融、财务、嵌入式、通信、手机、游戏……这就要求从事行业类软件测试的人员具备行业背景、业务知识,熟练该行业工作流程。从社会上出现的很多对此类经验要求的测试工程师招聘信息中,我们更加肯定这种趋势;所谓存在即是道理,既然社会上有了需求,那么就可以作为个人发展的方向。而另外一个特点是,业务测试工程师的工作内容主要是黑盒测试,属于功能范畴,因此对技术要求不大,设置一些大型行业类软件公司的业务测试工程师薪资丰厚,但是完全可以不懂技术,因为它的工作性质决定了不需要懂很多的技术!他们甚至连软件的界面测试都不做——交给常规测试工程师实施,而完全关注软件的业务性和易用性,由于其深厚的行业背景,可以为软件的在正式发布前提出很多建设性的意见,而这些建议正是软件开发商提高产品易用性、增加用户满意度、开拓市场、创造利润的关键因素之一!

    管理方面高级域

    当管理路线的中级域方向继续上升至高级域,就分别到达配置管理经理、质量保证经理、产品经理、业务专家。

    如果说配置管理工程师、质量保证工程师更加侧重于配置管理流程、质量保证流程的实施与日常管理维护,那么配置管理经理、质量保证经理就是更侧重于配置管理流程、质量保证流程的建立与改进。一般在中小软件企业,可能没有这两个角色,而全部的配置管理或质量保证工作都由工程师担当;但是大中型软件企业对资 深配置管理经理、资深质保经理求贤若渴。软件系统越庞大,软件开发团队规模就越庞大,软件开发流程中出现问题的几率就越高,高效管理软件开发流程,不断改进软件质量,是每个软件公司在技术上没有顾虑后的下一个急需攻破的难关!

    业务专家,属于行业内咨询、顾问的角色,已经几乎脱离了测试工作本身,而更多为企业的产品需求分析、设计、开发、测试等各个环节提供指导工作,其目的也是提高软件的易用性和稳定性,减少后期不必要的需求变更。该职位也同样在目前热点行业的大中型软件企业有所设立。

    产品经理,这个职位在很多企业有所设立,可以说它是质保经理的派生,只是它更侧重于软件在产品化之前的质量监控工作,包括软件开发流程、软件测试等技术与管理的各个方面。

    管理方面咨询域

    管理路线的最高发展域是咨询域,与技术路线的专家域类似,在配置管理、质量保证、软件产品化、行业领域达到高深造诣的人才,他们有丰富的从业经验、深厚的管理底蕴,具有对软件工程高瞻远瞩的慧眼和胆识,往往供职在专业的咨询与培训公司,提供IT业管理类咨询与培训的服务,推动着软件行业的前进。国内外很多为软件企业进行CMM咨询和实施的公司里,就是这些人才的大本营之一!

    二丶元素定位

    1.为什么要学习定位元素?

    1)计算机没有智能到人的程度。     

    2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入 

    3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)

    2.元素定位的工具或手段有哪些?

    1)css选择器     

    2)xpath

    3.环境及工具

    1)请查看博主的Selenium3与Python3实战开发Web自动化测试框架(一)该篇博客中可以进行学习(windows+python3+selenium3+[chrome/firefox/ie])

    2)现在博主演示的安装firefox浏览器的firepath以及firebug两个插件,博主电脑本身已经安装了Firefox68版本的火狐浏览器,现在安装Firefox35版本,这两个版本是可以共存的

    • 安装时选择自定义

    • 安装完成后,进入选项中

    • 关闭所有的更新

    • 进入附件组件中

    • 选择从文件安装附件组件

    • 接下来则是选择firepath和firebug插件,进行安装即可

    • 安装完成后,重启浏览器,检查页面元素,则会出现firepath的菜单栏

    4.css选择器

    1.什么是css选择器?     

    CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素,我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。

    2.css选择器语法     

    1)通过伪类名、id、标签名定位

    2)通过元素之前嵌套关系

    3)通过属性

    4)通过父子关系

    5)元素状态

    5.xpath

    1.什么是xpath?     XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。     W3School官方文档:http://www.w3school.com.cn/xpath/index.asp

    2.什么是XML?     XML 指可扩展标记语言(EXtensible Markup Language)     XML 是一种标记语言,很类似 HTML     XML 的设计宗旨是传输数据,而非显示数据

    3.XML与HTML

    4.节点的概念:每个XML/HTML的标签我们都称之为节点

    5.XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似

    查找某个特定的节点或者包含某个指定的值的节点

    选择未知节点

    选取若干路径

    补充:

    //*[text()=“x’x’x”]                            文本内容是xxx的元素     

    //*[starts-with(@attribute,’xxx’)]                属性以xxx开头的元素     

    //*[contains(@attribute,’xxxxx’)]                属性中含有xxx的元素     

    //*[@attribute1=value1 and @attribute2=value2]    同时有两个属性值的元素     

    6.xpath实例(没有固定的写法,只要能找到页面的元素都可以

    • 如在csdn网站首页中,如何通过xpath匹配首页中推荐内容的标题

    • 如在糗事百科文字栏中对页面所有文章进行选中,使用xpath中的position方法将文章的div容器进行选中

    • 查看匹配到的div个数也就是当前页面所有文章数目,选中第10条文章,选中后该文章所在的div标签属性中会多出高亮属性

    • 接下来则是获取该第10条文章的作者名称

    • 获取该篇文章下的评论数

    • 选择页面元素中的若干元素路径使用|进行分割,通过以下实例获取当前页面meta标签以及link标签的所有路径,实际可用于两个不同网站的登录页面,而不仅是用于一个项目的使用

    • 使用starts-with方法来匹配name属性以"rend"开头的标签

    • 除了使用starts-with方法之外还可以使用contains来匹配name属性下包含"rend"的标签

    7.css实例

    • 如在凤凰网中,通过css选择器来找到某个class属性的标签

    • 匹配id属性值为root的标签

    • 在css选择器中选择页面中所有的meta元素以及link元素,对比xpath是以,进行分割

    • 在css选择器选择div元素内部的所有a标签

    • 另选择div元素内部的所有a标签(注意跟以上面的区别

    • 选择ul标签之后的所有ul(所以第一个ul并没有选择)

    • 选择div标签之后的所有div,跟上面同理第一个div是不会被选中的(说白了就是+之前的为判断条件,之后的才会被选择

    • 匹配id属性值为subNav标签

    • 除了id和class以外其他的类似type value类型的都可以进行匹配

    • 匹配class属性中包含"clearfix"的所有标签

    • 匹配src属性的值以"https://x0"开头的标签

    • 匹配src属性的值以".js"结尾的标签

    • 匹配src属性的值包含"2019"的标签

    • 匹配class属性为layout-2QlrJZv-父元素下的第二个字元素div的标签

    • 匹配父元素body倒数第一个也就是最后一个子元素所在的标签

    • 通过复制标签唯一选择器,并粘贴到Firepath中,从选择器的匹配规则中可以发现根本不会使用nth-last-child这种方式

    • 匹配没有子节点的元素

    8.元素定位方法总结

    • 在firefox火狐浏览器中可以通过浏览器自带的检查元素进行检查然后复制唯一选择器即可,然后通过firepath进行检验是否正确

    • 然后是通过Inspect in Firepath进行获取定位元素,会自动获取其css匹配规则

    • 同理在chrome谷歌浏览器中使用自带的功能获取到元素css或者xpath的匹配规则

    展开全文
  • Web自动化测试

    千次阅读 2019-02-26 17:04:50
    1. 什么是自动化? 概念:由机器设备代替人为自动完成指定目标的过程 1.1 优点: 1. 减少人工劳动力 2. 工作效率提高 3. 产品规格统一标准 4. 规模化(批量生产) 2. 什么是自动化测试 概念:让程序代替...

    1. 什么是自动化?

    概念:由机器设备代替人为自动完成指定目标的过程              
    

    1.1 优点:

    1. 减少人工劳动力
    2. 工作效率提高
    3. 产品规格统一标准
    4. 规模化(批量生产)
    

    2. 什么是自动化测试

    概念:让程序代替人为去验证程序功能的过程        
    

    2.1 为什么要进行自动化测试?

    1. 解决-回归测试
    2. 解决-压力测试
    3. 解决-兼容性测试
    4. 提高测试效率,保证产品质量
    
    回归测试:项目在发新版本之后对项目之前的功能进行验证;
    压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
    兼容性测试:不同浏览器(IE、Firefox、Chrome)等等
    

    2.2 自动化测试相关知识

    自动化测试在什么阶段开始?

    功能测试完毕(手工测试)
    
    手工测试:就是由人去一个一个输入用例,然后观察结果;
    

    自动化测试所属分类

    1. 黑盒测试(功能测试)
    2. 灰盒测试(接口测试)
    3. 白盒测试(单元测试)
    
    提示:Web自动化测试属于黑盒测试(功能测试) 
    

    优点

    1. 较少的时间内运行更多的测试用例;
    2. 自动化脚本可重复运行;
    3. 减少人为的错误;
    4. 测试数据存储
    

    缺点

    1. 不能取代手工测试;
    2. 手工测试比自动化测试发现的缺陷更多;
    3. 测试人员技能要求;
    
    误区:    
        1). 自动化测试完全替代手工测试
        2). 自动化测试一定比手工测试厉害
        3). 自动化可以发掘更多的BUG
    

    思考

    在软件测试领域中,自动化测试有哪些分类呢?
    

    3. 自动化测试分类

    1. Web-(UI)自动化测试(本阶段学习)
    2. 接口-自动化测试
    3. 移动(app)-自动化测试
    4. 单元测试-自动化测试

    1.1 Web自动化测试的目标

    课程目标:
        掌握selenium web UI界面自动化测试流程、方法,完成web UI界面元素自动化测试。
        掌握使用selenium进行web UI测试的方法并结合unittest框架实现用例的管理及报告的输出。

    2. 什么是Web自动化测试?

    概念:让程序代替人为自动验证Web项目功能的过程

    3. 什么Web项目适合做自动化测试?

    1.需求变动不频繁
    2.项目周期长
    3.项目需要回归测试

    4. 如何进行Web自动化测试?(主流测试-工具)

    1. QTP(收费)
            QTP是商业的功能测试工具,收费,支持web,桌面自动化测试。
    2. Selenium(开源)【本阶段学习】
            Selenium是开源的web自动测试工具,免费,主要做功能测试。
    3. Jmeter(开源、Web、接口、性能)
            Jmeter是由Apache公司使用Java平台开发的一款测试工具,支持(Web、接口测试、性能测试)
            提示:Web测试在通信层(无UI界面)
    5. Loadrunner(收费、Web、性能)
            Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试

    4.1 主流工具-汇结:

        Web自动化测试:selenium
        App端自动化测试:Appium、UIautomation
        PC客户端(win32)自动化测试:QTP
        接口自动化测试:Jmeter、Postman
        性能测试:Jmeter、LoadRunner

    5. 什么是Selenium?

    概念: Selenium是一个用于Web应用程序测试的工具;中文的意思(硒)
    selenium是ThoughtWorks公司的一款强大的开源web界面自动化功能测试工具套件,
    用来实现整个测试过程的管理,包括读入测试套件、执行测试和记录测试结果。 
    selenium测试直接运行在浏览器中,模拟手动界面操作。

    5.1 Selenium特点

    1. 开源软件:源代码开放可以根据需要来增加工具的某些功能
    2. 跨平台:linux 、windows 、mac
    3. 核心功能:就是可以在多个浏览器上进行自动化测试
    4. 多语言:Java、Python、C#、JavaScript、Ruby等
    5. 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
    6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

    5.1 Selenium家族(发展史) 【了解】

     

    5.2 Selenium RC和Selenium webdriver的工作原理对比

    1. Selenium RC工作原理图

    selenium webdriver执行效率更高的原因:
        可以直接操作浏览器,省去了中间环节,操作更直接。
        利用浏览器自身特定的api完成命令执行,执行方式更有针对性,执行效率更高。
    
    selenium RC与selenium webdriver的区别:
        selenium RC不支持无头浏览器(运行在内存中,不依赖于拥有实际页面的浏览器)。
        selenium RC面向过程,selenium webdriver面向对象。
        selenium RC不支持移动端自动化测试。
    
    
    重点:    
        1. SeleniumIDE
        2. Selenium2.0(WebDriver)

     

    展开全文
  • web自动化测试全流程

    千次阅读 2020-04-30 17:47:18
    一.web自动化入门 1.什么是web自动化测试? 让程序代替人为自动验证web项目功能的过程 2.什么web项目适合做自动化测试 需求变动不频繁 项目周期长 需要回归测试 3.测试工具: web自动化测试:selenium app端自动化测试:...

    一.web自动化入门

    1.什么是web自动化测试?
    让程序代替人为自动验证web项目功能的过程
    2.什么web项目适合做自动化测试
    需求变动不频繁
    项目周期长
    需要回归测试
    3.测试工具:
    web自动化测试:selenium
    app端自动化测试:Appium
    接口自动化测试;jemeter,postman
    性能测试:jemeter.loadrunner
    4.selenium webdriver工作原理
    在这里插入图片描述

    二.WebDriver基础

    1.搭建webdriver环境
    在这里插入图片描述
    2.webdriver元素定位
    2.1 8大元素定位方式
    1.id
    2.name
    3.class_name
    4.tag_name
    5.link_text
    6.partial_link_text
    7.xpath
    8.css
    2.2 定位方式分类-汇总
    1.id,name,class_name:为元素属性定位
    2.tag_name:为元素标签定位
    3.link_text,partial_link_text:为超链接定位(a标签)
    4.xpath:为元素路径定位
    5.css:为css选择器定位
    2.3 id定位方法
    find_element_by_id()
    ** id定位实现步骤分析**
    1.导入selenium包 from selenium import webdriver
    2.导入time包 import time
    3.实例化火狐浏览器 driver=webdriver.Firefox()
    4.打开页面 driver.get(‘url’) url使用r转义
    5.调用id定位方法 driver.find_element_by_id(’’)
    6.使用send_keys()发送数据 .send_keys("abc’)
    7.暂停三秒 time.sleep(3)
    8.关闭浏览器 driver.quit()
    2.4 name定位
    find_element_by_name()
    说明:html规定name属性指定元素名称,因此作用更像人名,name属性值并不唯一
    name定位方式与id一致
    2.5 class_name定位
    find_element_by_class_name()
    说明:html规定了class来指定元素类名,用法和id,name类似
    2.6 tag_name定位
    find_element_by_tag_name()
    说明:html本质就是由不同的tag(标签)组成,而每个tag都是同一类,所以tag定位效类低,tag_name定位就是通过标签名来定位
    说明:使用tag_name获取第二个元素
    代码:driver.find_element_by_tag_name(‘input’)[1].send_keys(‘123’)
    2.7 link_text定位
    说明:link_text,专门用来定位超链接文本标签
    link-text定位方法
    1.方法:find_element_by_link_text(’’)
    2.说明:需要传入a标签全部文本
    2.8 partail_link_text定位
    说明:partail_link_text是对link_text的补充,partial_link_text为模糊匹配,link_text为全部匹配
    pritail_link_text定位方法
    1.方法:find_element_by_partail_link_text()
    2.说明:需要传入a标签局部文本,能表达唯一性
    2.9 find_elements_by_xxx
    作用:查找所有符合条件的元素
    返回的定位元素格式为列表
    说明:列表数据格式的读取需要指定下标(下标从0开始)

    3.Xpath.CSS定位
    什么时候使用xpath,css
    id,class,name属性值为动态获取,随着刷新或加载而变化
    3.1 Xpath定位策略
    xpath定位方法
    driver.find_element_by_xpath()
    1.路径定位
    绝对路径
    相对路径
    2.利用元素属性
    3.层级与属性结合
    4.属性与逻辑结合
    路径(绝对路径,相对路径)
    绝对路径:从最外层元素到指定元素之间所有经过元素层级路径
    例如:/html/body/div/p[2]
    提示:绝对路径从/开始
    使用firebug可以快速生成,元素xpath绝对路径
    相对路径:从第一个符合条件的元素开始(一般配合属性区分)
    例如://input[@id=‘kw’]
    提示:相对路径以//开始
    使用firebug拓展可以快速生成,元素相对路径
    利用元素属性
    说明:快速定位元素,利用元素唯一属性
    实例://[@id=‘userA’]
    层级与属性结合
    说明:要找的元素没有属性,但他的父级有
    实例://
    [@id=‘p1’]/input
    属性与逻辑结合
    说明:解决元素间相同属性重名问题
    实例://[@id=‘telA’ and @class=‘telA’]
    Xpath延伸
    //
    [text()=‘xxx’] 文本内容是xxx的元素
    //[starts-with(@attribute,‘xxx’)] 属性以xxx开头的元素
    //
    [contains(@attribute,‘sxxx’)] 属性中含有xxx的元素

    3.2 CSS定位
    1.在selenium中极力推荐css定位,因为它比xpath定位速度要快
    css定位方法
    driver.find_element_by_css_selector()
    css定位常用策略
    1.id选择器
    2.class选择器
    3.元素选择器
    4.属性选择器
    5.层级选择器
    使用css的案例
    通过类名,id,和标签名定位
    在这里插入图片描述
    层级选择器
    说明:根据元素的父子关系来选择
    格式:元素>元素,例如:P>input 返回所有p元素下的input元素
    提示:> 可以用空格代替 例如 p input
    元素之间的嵌套关系
    在这里插入图片描述
    通过属性
    在这里插入图片描述
    通过父子关系
    在这里插入图片描述
    元素状态
    在这里插入图片描述
    css总结
    在这里插入图片描述
    4.xpath和css类试功能对比
    在这里插入图片描述
    5.元素操作方法
    1.clear() 清除文本
    2.send_keys() 模拟输入
    3.click() 单击元素
    5.1webdriver操作浏览器常用方法
    1.maxmize_window() 最大化
    2.set_window_size(100,100) 浏览器大小,设置浏览器宽高(像素点)
    3.set_window_position(300,200) 浏览器位置,设置浏览器位置
    4.back() 后退
    5.forward() 前进
    6.refresh() 刷新
    7.close() 关闭单个窗口
    8.quit() 关闭所有webdriver启动窗口
    5.2webdriver操作浏览器总结
    最大化浏览器
    driver.maxmize_window()
    刷新
    driver.refresh()
    后退
    driver.back()
    前进
    driver.forward()
    设置浏览器大小
    driver.set_window_size(300,200)
    设置浏览器位置
    driver.set_window_position(300,200)
    关闭单个浏览器窗口
    driver.close()
    关闭所有浏览器
    driver.quit()

    6.webdriver的其他用法
    1.size 返回元素大小
    2.text 返回元素文本
    3.title 获取页面title
    4.current_url 获取当前页面url
    5.is_display() 判断元素是否可见
    6.is_enabled() 判断元素是否可用
    7.get_attribute(’'xx") 获取属性值
    提示:
    1.size,text.title,current_url:为属性,调用时无括号
    2.title,current_url:使用浏览器实例化对象直接调用,例如:driver.title
    6.1webdriver其他常用方法总结:
    获取文本框大小
    size=driver.find_element_by_id(‘userA’).size
    print(‘size’:size)
    获取a标签内容
    text=driver.find_element_by_id(‘fwa’).text
    print(‘a标签text’:text)
    获取title
    title=driver.title
    获取当前页面url
    url=driver.current_url
    获取a标签href属性值
    href=driver.find_element_by_id(‘fwa’).get_attribute(‘href’)
    判断span是否显示
    display=driver.find_element_by_id_css_selector(‘span’).is_displayed()
    判断取消按钮是否可用
    enabled=driver.find_element_by_id(‘cancelA’).is_enabled()

    三.中级API

    包括:元素等等,警告框操作,下拉选择框,滚动条,切换frame表单,窗口截图,键盘鼠标操作
    1.webdriver鼠标操作
    说明:webdriver中将操作鼠标的方法封装在ActionChains类中
    1.double_click() 双击
    2.drag_and_drop() 拖动
    3.move_to_element() 悬停
    4.perform() 执行,用次方法执行以上所有鼠标方法
    例如:注册页面A,在用户名文本框上点击鼠标双击
    1.导包:from selenium.webdriver.common.action_chains import ActionChains
    2.实例化ActionChains对象:action=ActionChains(driver)
    3.调用双击方法:element=action.double_click(username)
    4.执行:element.perform()

    2.webdriver键盘操作
    说明:webdriver中将操作键盘的方法封装在keys类中
    导包:from selenium.webdriver.commom.keys import keys
    2.1常用的键盘操作

    1. send_keys(Keys.BACK_SPACE)删除键(BackSpace)
    2. send_keys(Keys.SPACE)空格键(Space)
    3. send_keys(Keys.TAB)制表键(Tab)
    4. send_keys(Keys.ESCAPE)回退键(Esc)
    5. send_keys(Keys.ENTER)回车键(Enter)
    6. send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
    7. send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)

    3.元素等待
    隐式等待调用方法
    方法:implicitly_wait(秒),最大等待时长
    调用:driver.implicitly_wait(10)
    说明:如果定位某一元素失败,就会触发隐式等待有效时长,如果在指定时长内加载完毕则继续执行,否则抛出NosuchelementExcption异常,如果元素定位到了不会触发隐式等待

    4.下拉选择框
    说明:下拉框就是HTML中的select元素
    4.1select类
    select方法:
    1.select_by_index() 根据option索引来定位,从0开始
    2.select_by_value() 根据option属性 value值来定位
    3.select_by_visible_text() 根据option显示文本来定位
    4.2 select类实现方法
    1.导包select类 from selenium.webdriver.support.select import Select
    2.实例化select类 select=Select(driver)
    3.调用方法:select.select_by_index(0)
    select.select_by_visible_text(‘上海’)
    select.select_by_value(‘cq’)select_by_value(‘cq’)

    5.警告框处理
    说明:webdriver对警告框的操作,有专门的处理方法
    提示:html中常用对话框有三种,处理方法都一样
    1.alert
    2.confirm
    3.prompt
    5.1 警告框处理方法
    1.text 返回文字信息
    2.accept() 接受对话框选项
    3.dismiss() 取消对话框选项
    5.2 调用方法
    1.获取警告框
    alert=driver.switch_to.alert
    2.调用
    alert.text
    alert.accept()
    alert.dismiss()
    5.3处理警告框总结
    定位alert按钮
    alert=driver.find_element_by_id(‘alert’).click()
    获取警告框
    alert=driver.switch_to.alert
    打印警告文本
    print(alert.text)
    接受警告栏
    alert.accept()
    取消警告栏
    alert.dismiss()

    6.滚动条操作
    说明:调用JavaScript方法操作滚动条
    为什么要学习滚动条:
    在html页面中,由于前端技术框架原因,页面元素为动态显示,元素根据滚动条下拉而被加载
    6.1需求分析实现
    1.设置JavaScript脚本控制滚动条 js=‘windos.scrollTo(0,100)’
    2.webdriver调用js脚本方法 driver.execute_script(js)

    7.frame表单切换
    说明:webdriver类库中封装了html页面中使用frame表单框架技术的方法
    方法:driver.switch_to.frame(’’) 切换表单方法
    driver.switch_to.default_content() 恢复默认页面方法
    7.1操作原理
    1.html中iframe标签提供了内联结构,使用内联结构可以在一个浏览器中显示多个页面
    2.iframe标签是外层页面的标签,若想操作iframe框架内嵌的页面,需要先定位到iframe页面
    3.通过switch_to.frame()切换到内层页面,在进行内层页面的操作
    4.内层页面的操作和普通页面一致,元素定位,元素操作
    7.2 frame表单切换
    说明:在webdriver类库中封装了HTML页面中使用frame表单框架技术定位的方法
    操作步骤:
    1.定位到iframe标签
    2.完成切换
    若iframe具有id属性,直接使用id属性值切换进内层页面
    driver.switch_to,.frame()
    定位到iframe元素,再切换进入
    element=driver.find_element_by_id(’’)
    driver.switch_to.frame(element)
    在这里插入图片描述
    8.多窗口
    多窗口切换
    说明:再webdriver中封装了获取当前窗口句柄方法和获取所有窗口句柄的方法以及切换指定句柄窗口的方法
    句柄(handle,窗口的唯一标识码)
    方法:
    driver.current_window_handle 获取当前窗口句柄
    driver.window_handles 获取所有窗口句柄
    driver.switch_to.window() 切换到指定句柄

    9.窗口截图
    方法:在同级目录下创建image文件夹
    get_screenshot_as_file(’./image/01.png’) 截取当前窗口

    10.验证码
    说明:在web应用中,需要输入验证码
    10.1 验证码处理方式:
    去掉验证码 测试环境下
    设置万能验证码 生产环境
    记录cookie
    10.2 记录cookie
    方法:
    get_cookies() 获取本网站所有本地cookie
    get_cookie(name) 获取指定cookie
    add_cookie(str) 添加cookie str:为字典格式 {’ ’ : ’ '}
    10.3实现步骤分析
    1.登录百度,抓取(BAIDUID,BDUSS)
    2.使用add_cookie()方法,添加(BAIDUID,BDUSS)键和值
    3.调用刷新方法 driver.refresh()
    10.4代码示例
    from selenium import webdriver
    import time
    driver=webdriver.Firefox()
    driver.get(r"https://www.baidu.com")
    driver.add_cookie({‘name’:‘BAIDUID’,‘value’:‘根据实际填写’})
    driver.add_cookie({‘name’:‘BDUSS’,‘value’:‘根据实际填写’})
    time.sleep(3)
    driver.refresh()
    time.sleep(3)

    四.自动化测试框架

    1.unitTest框架
    专门用来执行代码测试的框架
    为什么使用unittest框架
    1.能够组织多个用例执行
    2.提供丰富断言方式
    3.提供丰富日志结果和测试结果
    1.2 unittest 核心要素
    1.TestCase
    2.TestSuite
    3.TextTestRunner
    4.Fixture
    1.3 TestCase
    说明:一个testcase就是一条测试用例
    使用:
    1.导包 import unittest 导入unittest框架
    2.继承 unittest.TestCase 新建测试类继承unittest.TestCase
    提示:
    1.测试用例:在自动化测试用,一条用例就是一个完整的测试流程
    2.测试方法名称必须以test开头
    1.4 TestSuite
    说明:测试套件,多条测试用例集合在一起就是一个TestSuite
    使用:
    1.实例化:suite=unittest.TestSuite()
    suite为TestSuite得实例化名称
    2.添加用例:suite.addTest(类名(‘方法名’))
    3.添加整个类:suite.addTest(unittest.makeSuite(类名)) 搜索指定类中以test开头的方法
    提示:一条测试用例内,多个方法也可以被执行
    testsuite要配合TextTestRunner才能被执行
    1.5 TextTestRunner
    说明:测试执行,用来执行测试用例套件的
    使用:
    1.实例化 runner=unittest.TextTestRunner()
    runner是texttestrunner的实例化名称
    2.执行 runner.run(suite)
    suite为测试套件名字
    1.6 Fixture
    说明:是一个概述,测试环境的搭建和销毁
    使用:
    1.初始化(搭建) def setup( ) 首先执行 此方法继承于unittest.TestCase
    2.结束 def teardown() 最后执行 此方法继承于unittest.TestCase
    提示:
    1.必须继承于unittest.TestCase类,setup和teardown才是一个Fixture
    2.setup一般做初始化工作,比如:实例化浏览器,浏览器最大化,设置隐式等待
    2.teardown一般做结束工作,比如:退出登录,关闭浏览器
    4.如果一个测试类有多个test开头方法,每个方法执行前都运行setup,结束时运行teardown

    2.uniTest断言
    断言分类:
    1.布尔类型断言
    2.比较断言
    3.复杂断言
    2.1 布尔类型断言 结果只有True和False
    在这里插入图片描述
    2.2 断言主要代码:
    获取登录信息
    text=self.driver.find_element_by_css_selector(’.loginfo’).text
    print(‘登录成功信息为’,text)
    try:
    使用断言判断text是否包含admin字符
    self.assertIn(‘admin’,text)
    excpt AssertionError as e:
    driver.get_screenshot_as_file(’./image/01.png’)
    抛出异常
    print(e)

    展开全文
  • 电商项目Web自动化测试实战

    千次阅读 2020-02-26 16:56:54
    Web自动化主要是功能自动化和部分功能的兼容性测试 Web自动化主要针对:主要流程和重要功能的自动化(有效等价类、异常场景) 测试准备: TPshop开源电商项目 测试业务场景: 登录->搜索->添加购物车->结算...
  • github地址: https://github.com/wuranxu/webTest 基于Python的webUI自动化测试框架,支持多平台~带有自动下载chrome驱动功能
  • web自动化入门

    千次阅读 2019-04-10 09:38:11
    一、selenium的简介 selenium使用浏览器进行自动化操作、主要是为了测试目的自动化web应用程序、但不限于此、 话不多说直接干货 ...1)、新建一个python项目、再这里就叫web自动化 2)、建一个python文件、在...
  • Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的...
  • WEB自动化测试软件QuickTester使用教程

    千次阅读 2019-12-31 16:15:50
    selenium录制器是最近刚流行起来的一个WEB自动化测试工具,由多测测团队开发。 Selenium录制器采用关键字驱动的理念,简化测试用例的创建和维护,可以直接运行在浏览器中,就像真正的用户在操作一样。 自动化脚本...
  • web自动化之鼠标悬停事件

    千次阅读 2019-05-31 22:51:02
    # 1、找到select元素对象,实例Select类。 WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH,'//select[@name="ft"]'))) s = Select(driver.find_element_by_xpath('//select[@name=...
  • Web自动化工具对比

    万次阅读 2017-05-18 19:06:54
    首先说一下我对Web自动化测试与CS自动化测试的认识。从宏观对比都是通过脚本自动化完成功能的验证,区别不大。Web测试更为显著的浏览器兼容性、安全,以及与Web技术相关的表单测试、链接测试等,其实都是功能上的...
  • 1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 首先要说明的是:本次Web自动化环境的搭建教程是基于Selenium+Java+Testng框架,感兴趣的朋友可以看下去,开始你的web自动化测试之旅。 那么在开始核心内容之前,我还是想简单聊一聊Selenium工作流,更好的帮助大家...
  • Web自动化测试Selenium 学习笔记(一)

    万次阅读 多人点赞 2018-05-14 20:34:47
    1、Web自动化测试简介自动化基础:自动化用例编写、Selenium优势及原理、自动化环境搭建Selenium基础:常见8大元素定位(表格)、常见元素处理、下拉框元素处理、不同窗口切换、元素进阶、元素等待需求到框架 需求...
  • Web自动化常用的框架

    千次阅读 2019-04-27 20:50:49
    一、Web自动化常用的框架(主流测试-工具) ---QTP(收费):商业化的功能测试工具,收费,支持Web,桌面自动化 ----Selenium(开源):是开源的Web自动化工具,免费,主要做功能测试 ----Jmeter(开源,Web,...
  • 分层自动化:["分层设计思想","分层设计实战","分层case编写","流程调节"] Unittest与PO结合:["Unittest的使用","assert断言","HTMLTestRunner","如何批量管理case","失败截图处理","项目结合"] 数据驱动的使用:...
  • python实现web自动化常用方法

    千次阅读 2019-10-23 18:53:33
    selenium 定位元素的方式一共 8个 通过 find_element_by_**** 可以更为为8种方式的任何一个定位定的都是单个元素 id 查找 name 查找 class_name 查找 以上三个都是根据标签的属性值来查找的 <...
  • web自动化的环境部署及selenium原理

    千次阅读 2019-07-25 14:59:51
    selenium环境安装 前面介绍了那么多,终于到...要做自动化,就先安装环境 1、先安装selenium 2、查看浏览器类型及版本号 3、下载对应的浏览器驱动(低版本的火狐浏览器不需要下载驱动,高版本需要下载驱动) 4...
  • web自动化之alert弹框

    千次阅读 2019-05-31 22:47:04
    什么是alert弹框呢? ...如下图: 这种F12定位不到 针对这种我们怎么做呢? 哎~ selenium里提供了switch_to.alert方法供我们使用。具体代码如下 from selenium import webdriver from selenium.webdriver.support.wait...
  • Java自动化之web自动化

    千次阅读 2019-09-20 09:48:07
    安装最新版本火狐浏览器69版,安装selenium版本3.9.1,编写Java代码运行报错。 更改后运行 自学思考后,根据报错信息提示发现自己没有下载驱动FirefoxDriver ...以下是驱动/selenium/浏览器相匹配...
  • 基于Selenium的web自动化框架(python)

    千次阅读 2017-06-11 15:39:51
    Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个...
  • web自动化测试理论

    千次阅读 2018-10-20 23:13:15
    用工具代替/辅助人工完成软件测试活动的过程,不能为了自动化自动化 自动化测试特点 可以对程序的新版本自动执行回归测试 可以执行一些手工测试困难或不可能进行的测试 可以更好地利用资源 测试具有一致性...
  • Selenium+TestNG 框架的WEB自动化源码

    热门讨论 2009-06-19 16:12:33
    Selenium+TestNG 框架的WEB自动化源码 Selenium+TestNG 框架的WEB自动化源码
  •  写一个简单的Python的自动化脚本,代码要实现的功能是打开的Firefox浏览器,输入百度的网址,打开百度界面,在百度搜索框中输入“Selenium2”关键字,然后点“百度一下”按钮搜索出结果,然后自动关闭浏览器。...
  • 8.自动化测试用例怎么来? 一般来源于冒烟测试测试   9.你是怎么开发测试框架的? Selenium+Maven+TestNG+Jekins   10.做自动化测试的目的? a.用来回归 b.用来监控系统稳定性 c.提高工作...
  • 零成本实现Web自动化测试-基于Selenium和Bromine扫描版
  • web自动化测试终篇(28):总结我理解的ui自动化

    千次阅读 多人点赞 2019-05-04 23:05:13
    自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义; 折中的做法是选择相对稳定的模块和功能进行自动化...
  • 自动化脚本的录制与回放 1.实验所需插件:Katalon Automation Recorder Katalon Automation Recorder 的开发为那些无法再用 Selenium IDE 来记录和重放自动化测试的用户们,或者是为正在使用开源框架,寻求一个...
  • 一、在自动化测试中,我们都知道是通过定位元素来实现的,那么有时候我们定位元素定位不到是为什么呢? 1、页面出现了iframe 2、出现了新的窗口,没有实现句柄的切换 3、三种等待方式,没有选择其中之一来使用,元素...
  • Macaca(二) - web自动化之 Chrome实例

    千次阅读 2018-04-11 21:01:53
    Macaca的环境安装完成之后,接下来,可以开启使用Macaca尝试web自动化测试了。步骤如下:1、启动Macaca Server命令如下:macaca server --verbose如果此时,chrome驱动没有安装的话,就会报如下错误(找不到macaca-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 846,134
精华内容 338,453
关键字:

web自动化