本篇文章给大家谈谈可以单独使用Selenium来自动化IntranetWeb门户的测试,其中门户上的链接指向SAP应用程序,同时本文还将给你拓展java+selenium+WebAPI自动化测试框架分
本篇文章给大家谈谈可以单独使用Selenium来自动化Intranet Web门户的测试,其中门户上的链接指向SAP应用程序,同时本文还将给你拓展java+selenium+Web API 自动化测试框架分享、SAP CRM WebClient UI Selenium自动化UI测试的一些调试步骤、Selenium 4.0-最新的测试自动化工具、Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 可以单独使用Selenium来自动化Intranet Web门户的测试,其中门户上的链接指向SAP应用程序
- java+selenium+Web API 自动化测试框架分享
- SAP CRM WebClient UI Selenium自动化UI测试的一些调试步骤
- Selenium 4.0-最新的测试自动化工具
- Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
可以单独使用Selenium来自动化Intranet Web门户的测试,其中门户上的链接指向SAP应用程序
可以单独使用Selenium来自动化Intranet Web门户的测试,其中门户上的链接定向到SAP应用程序。门户仅在IE和Windows
OS上的SAP应用程序上工作。
答案1
小编典典简单来说,Selenium是一个免费的(开源)自动化测试套件,适用于跨不同浏览器和平台的Web应用程序。
为了使用 Selenium 自动执行 Intranet Web门户
的测试,您必须使用java,python,c#,ruby,php,javascript,perl等之间的Selenium绑定之一。
理想情况下, Selenium 将能够执行 Web应用程序 托管的每一项任务。如果相关的 SAP Application Portal
到目前为止支持即,即可以通过 Selenium
很好地实现自动化,而不管它是否托管在Windows / Linux机器中。
java+selenium+Web API 自动化测试框架分享
前言
目前在做接口测试方面的工作,结合部门现状,初步整理及搭建了api的自动化测试框架,现在把我的思路、框架结构和大家分享出来,一方面希望可以为大家提供一些参考,另一方面也希望大家多提意见,以便测试框架的改进~~
主要目的:
1, 各版本用例管理
2, 结构验证、节点数据正确性校验
3, 简单业务逻辑覆盖
4, 各版本回归性测试
5, 线上环境监控及预警
6, 帮助开发、测试快速的执行接口测试,定位问题
大体构建流程:
一、.接口所涉及的信息都以数据结构形式进行存储。
1,对接口、接口的输入、输出参数进行数据存储(POST、GET)
考虑到接口返回值一般都较庞大、逻辑关系较复杂,如果单靠人工进行采集的话工作量非常巨大,为了缓解压力提供了通过json串解析输出结构的功能。
二、测试用例与接口进行关联,(支持自动、手工case;正常、异常状态校验)
将收集的输入、输出数据以树型结构展现,通过简单的勾选来完成测试用例的输入参数及预期输出结构进行关联生成测试用例。
除了支持对JSON结构的校验,同时集成了selenium,实现对返回值为HTML的页面进行规则校验的功能
三、测试用例的输入参数可配置,也支持与上行接口的输出参数进行关联。
可以配置上行接口,取得相应节点对应值,自动赋予当前用例接口参数。
比如有些接口需要在登陆或其他的情况下去操作,那么就可以配置上行接口,模拟登陆,然后取得登陆key,用key做为参数去执行用例。
也支持选取规则配置中预先定义好的规则参数
四、接口多种模式执行方式。
提供多样的执行入口
将接口各用例的执行情况(接口耗时 、成功与否、失败原因、异常节点等)信息,记入日志管理模块,同时为测试人员提供测试结果查询页面,对测试结果做大体的分析,尽可能的帮助测试人员去定位接口中存在的问题。
对于频繁变动的接口,影响范围又比较模糊,完全可以以大版本进行自动化回归测试,排查影响范围,以减少人工遗漏。
五、支持各类验证规则配置(集合、长度、类型、格式等)
除了对输出结果进行简单的规则验证外,也支持输入参数集合绑定,可以对集合内所有项进行循环调用、循环验证排查。
六、日常巡检、线上预警功能
当接口打上巡检标识后,系统就会每天定时自动排查接口;同时协助线上环境监控及预警,自动生成预警邮件抄送相关负责人。
1,所有测试人员都可以通过WEB页面对接口进行录入、测试、生成测试报告。
2,在HOST配置中加入测试、开发、生产的IP地址后,系统就可以根据人员自动执行不同环境下的测试任务。
SAP CRM WebClient UI Selenium自动化UI测试的一些调试步骤
Created by Wang, Jerry, last modified on Sep 09, 2013
final WebDriver webDriver = new InternetExplorerDriver();
// final WebDriver webDriver = new FirefoxDriver();
// final WebDriver webDriver = new ChromeDriver();
/*
* TODO handle logon. Basic authentication via browser popup is blocking
* and can''t be handled with webdriver. See
* http://code.google.com/p/selenium/issues/detail?id=34
*/
本文同步分享在 博客“汪子熙”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Selenium 4.0-最新的测试自动化工具
Selenium是业界领先的测试自动化工具之一,可以最大限度地实现测试自动化的目的。第一个Selenium工具于2004年作为Selenium Core推出。该Selenium测试自动化服务已在今年一些补充Selenium2007- IDE和Selenium的webdriver。
下一代Selenium工具分别命名为Selenium2(2011),Selenium 3(2016),经过三年的差距,Selenium将发布其最新版本Selenium 4.0。发布被推迟,并发布了Selenium-Selenium 4.0 alpha的试用版。让我们看一下所做的新添加和修改。
有什么新功能?
SELENIUM IDE: Selenium IDE支持快速的测试开发过程,不需要大量的编程知识。
Selenium的webdriver:Selenium中的webdriver是一个用户友好的,并在最流行的编程语言和bowsers可用灵活的API。
详细升级功能
Selenium是自动化测试行业的话题,它已经发布了Selenium 4 Alpha,该版本将升级到Selenium 4.0。Selenium 4版本中可以发现以下功能;
Web驱动程序已更改为W3c(万维网联盟)标准化:
Selenium 4对W3C的标准化进行了更改,以鼓励WebDriver API的各种软件实现之间的兼容性。此更改可确保通信不需要API的编码和解码。这样可以形成一个更稳定的框架,并减少各种Web浏览器之间的兼容性问题。
改进的Selenium网格
Selenium Grid在UI和稳定性方面已被即兴创作。Selenium网格的编码已完全更改,并且网格的控制台已重组。这允许在多个浏览器和操作系统上并行执行测试用例。现在,网格可以满足节点和集线器的目的。
Selenium 4的UI网格已创建为更加用户友好,并具有有关会话容量,运行时间和其他此类详细信息的所有相关信息。网格的另一个新增功能是支持将Docker容器与网格服务器一起使用。
介绍了友好/相对定位器
Selenium提供了多个显式定位符,例如id,XPath等…,新的定位符提供了一种通过考虑其他元素(例如上方,下方,从左到右,从右到近)来按位置定位元素的方法。
支持浏览器
对Opera&PhantomJS的现有支持将被删除。想要测试Opera的用户可以使用Chrome,而想要测试PhanthomJS的用户可以使用无头模式的Chrome或Firefox。在Selenium服务器上,HTML单元不再是默认值。
Selenium Ide (Chrome & Firefox):
Selenium IDE是用于记录和回放选项的工具,该工具具有许多更高级的功能。
新插件
Selenium IDE的旧版本只能在Google Chrome上运行,但是最新版本的Selenium 4的插件允许用户在任何可以声明以下内容的浏览器(Firefox,Google Chrome,Internet Explorer等)上运行Selenium供应商位置策略。
新的Cli Runner
新的CLI运行器的最新版本是基于Node.JS代码的WebDriver。这提供了回放和并行执行的功能以支持并行执行,并进一步有助于提供报告(测试报告通过和失败)。
详细文件
Selenium的用户面临许多困难,例如文档更新较晚。新版本有望提供更新的文档。
更好的分析
分析方面已得到增强-日志和调试详细信息已被改进,以加快测试人员对脚本问题的解决。
网络与性能分析仪
在网络分析器方面,已修改了诸如拦截请求,通过更改连接类型来模拟网络条件,启用网络跟踪之类的功能。
在性能分析器方面,已经更新了对基于铬的边缘浏览器的支持,Firefox上的整页屏幕截图以及元素级别的屏幕截图。此外,性能包分析器还提供了一些用于收集和报告持续时间指标的方法,从而可以分析运行时性能。
随着自动化测试行业中许多新的测试自动化工具和技术的引入,Selenium测试自动化工具始终具有领先优势,因为它具有满足组织的许多测试需求的综合潜力。
Selenium 4.0为用户提供了最佳的体验和能力,可以执行其先前版本中的所有未完成的任务。它更快,更兼容,使其成为市场上最高效的自动化工具。
测试自动化框架的重要性– iSAFE的优势
增加并行测试的好处
API测试| 了解API接口测试| API接口测试指南
Scrum中的软件测试指南
使用开源工具进行性能测试-打破神话
你想要的Fiddler抓包实操小技巧
在测试自动化中使用Java枚举
本文分享自微信公众号 - 软件测试test(gh_d29759b02f67)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
背景
最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习。所以本文几乎没有实践内容,大多都是概念和工具的 mark,后续若有实践,我会来补充的。
一、软件测试 分类
1、根据项目流程阶段划分
-
需求分析
-
设计
-
编码
-
单元测试
-
集成测试
-
系统测试
-
验收测试
2、白盒测试、黑盒测试、灰盒测试
白盒测试的意义:有时候输出是正确的,但内部其实已经错误了,这种情况非常多。
灰盒测试的意义:如果每次都通过白盒测试来操作,效率会很低,黑盒又太过笼统,因此折中的灰盒测试比较适合。
3、功能测试与性能测试
功能测试
主要检査实际功能是否符合用户的需求。
功能测试又可以细分为很多种:逻辑功能測试、界面测试、易用性测试、安装测试、兼容性测试等。
<br>
性能测试
主要有时间性能和空间性能两种。
时间性能:主要是指软件的一个具体的响应时间。
空间性能:主要指软件运行时所消耗的系统资源。
4、手工测试与自动化测试
自动化测试不能完全地替代手工测试,自动化测试的目的仅仅在于让测试人员从烦琐重复的测试过程中解脱出来,把更多的时间和精力放到更有价值的测试中,例如探索性测试。而自动化测试更多的是用来进行冒烟测试和回归测试。
自动化测试是本文要探讨的重点。
5、冒烟测试、回归测试、随机测试、探索性测试和安全测试
冒烟测试
:引入到软件测试中,就是指测试小组在正式测试一个新版本之前,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有运行通过,则打回开发组重新开发。这样做的好处是可以节省时间和人力投入到不可测的项目中。
回归测试
:回归测试是指修改了旧代码后,重新进行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
随机测试
探索性测试
安全测试
6、正向测试与逆向测试
正向测试用例 (Positive Test Case) 和反向测试用例 (Negtive test Case) 是对测试用例的一种分类。
例如:一个输入只能接受输入数字0-9,那么正向用例可以为:0,1,2,3,4,5,6,7,8,9,反向用例可以为:其它值。
反向测试用例通常指,系统不支持的输入或则状态,这类用例可以检查系统的容错能力、健壮性和可靠性。
二、何为自动化测试
自动化测试
的概念有广义与狭义之分:广义上来讲,所有借助工具来辅助进行软件测试的方式都可以称为自动化测试:狭义上来讲,主要指基于 UI 层的功能自动化测试。
注意:如果没有特别说明,则本文所说的“自动化测试”均指“基于 UI 的功能自动化测试”。
三、自动化测试 与 分层模型
1、测试金字塔
不同测试阶段所投入的自动化测试的比例:Unit > Service > UI。
2、Unit 层
单元测试:单元就是人为规定的最小的被测功能模块。规范的进行单元测试需要借助单元测试框架,如 Java 语言的 Junit、TESTNG, C# 语言的 Nunit,以及 Python 语言的 unittest、pytest 等,目前几乎所有的主流语言都有其相应的单元测试框架。
Code Review:与 Code Review 相关的插件和工具有很多,例如 Java 语言中基于 Eclipse 的 Review Clipse 和 Jupiter、主要针对 Python 语言的 Review Board 等。
现在因为 github/gitlab 的流行, 以前的工具用的很少了。不排除大厂用一些更专业的工具。
拓展:Code Review
目的:
1、改善代码质量
一些很基础的,比如缩进空格什么的,就交给 eslint 什么的去解决吧。
2、保证团队代码规范
3、提高代码性能
4、预防 bug
5、加深技术团队成员沟通,营造技术氛围
6、老带新互助成长
实践建议:
1、所有代码都必须经过 Review 才能 merge。
2、批评的时候最好同时给解决方案
3、每次 review 至少给一条正面评价,提高对方信心
4、不要在 review 中讨论需求
5、不要在 review 中讨论太多的架构或者设计模式,这个应该是在前期设计时解决的事
普及情况:
Code Review 做得好的普遍是一些比较偏技术的团队,而偏业务的技术团队比较少。
我们公司也很少做其实。
3、Service 层
接口测试:也有相应的类库或工具,例如测试 HTTP 的有 Httpunit、Postman 等。
4、UI 层
UI 自动化测试:目前主流的测试工具有 UFT、Watir、Robot Framework、Selenium 等。
JS 自动化测试:Qunit 就是针对 Javascript 的一个强大的单元测试框架,由jQuery团队的成员所开发,并且用在jQuery,jQuery UI,jQuery Mobile等项目。
其实这个也是单元测试,但是因为是前端,所以归到了 UI 这边。
四、什么样的项目适合自动化测试
(1)软件需求变动不频繁
或者一种折中的做法是先对系统中相对稳定的模块与功能进行自动化测试,而变动较大的部分用手工进行测试。
(2)项目周期较长
(3)自动化测试脚本可重复使用
(4)等等
五、自动化测试模型
1、线性测试
最原始的方法,测试用例之间可能会存在重复的操作,会导致开发成本和维护成本都很高。
2、模块化驱动测试
很好地解决了脚本的重复问题。
3、数据驱动測试
因为输入数据的不同从而引起输出结果的不同。实现了数据与脚本的分离。
4、关键字驱动测试
理解了数据驱动后,无非是把“数据”换成“关键字”,通过关键字的改变引起测试结果的改变。
好处:
目前市面上典型关键字驱动工具以 QTP(目前已更名为 UFT- Unified Functional Testing)、Robot Framework (RIDE)工具为主。这类工具封装了底层的代码,提供给用户独立的图形界面,以“填表格”的形式免除测试人员对写代码的恐惧,从而降低脚本的编写难度,我们只需使用工具所提供的关键字以“过程式”的方式来编写用例即可。
坏处:
关键字驱动也可以像写代码一样写用例,在编程的世界中,没有什么不能做:不过这样的用例同样需要较高的学习成本,与学习一门编程语言几乎相当。这样的框架越到后期越难维护,可靠性也会变差,关键字的用途与经验被局限在自己的框架内,你所学到的知识也很难重用到其他地方。所以,从测试人员的经验与技术积累价值来讲,笔者更倾向于直接通过编程的方式开发自动化脚本。
六、自动化测试工具 - selenium 2(UI层)
本章实操部分省略,后续若有实践,会适当补充。
有人说我们公司的软件是用某语言开发的,所以自动化测试也要选某语言:其实软件开发语言和软件自动化测试语言没有必然联系。也就是说,基于 Python (+ Selenium)编写的自动化测试脚本既可以测试基于 Java 开发的 Web 项目,也可以测试基于 PHP 开发的 Web 项目。所以,在选择 Selenium 自动化测试语言时不需要考虑与开发语言的一致性。
1、什么是 selenium 2
selenium 2
是 web 浏览器自动化测试框架。
下文的 selenium 默认都指 selenium 2。
虽然 selenium 支持 Android 自动化测试,但更推荐 Appium
, Appium 是 selenium 的延伸,基本上可以视为 “Selenium for Apps”,因为它也是基于 Selenium 的 Webdriver 技术开发的。
2、selenium 历史
selenium (selenium 1) 和 webdriver 原来是两个不同的开源项目,但在 selenium 2 的时候,将selenium 与 webdriver 合并了,即:
selenium 2 = webdriver + selenium 1
所以 selenium 2 可以等价为 webdriver ,对于 Selenium 2 的学习,其实是对 WebDriver API 的学习。
3、selenium 的支持模式
selenium 支持 HtmlUnit
和 PhantomJS
两个模式。
Phantom JS 是一个拥有 Javascript API 的无界面 Webkit 内核,与 Htmlunit 类似,但比它更高级一些。
通过 HtmlUnit 或 Phantom JS 进行的自动化测试运行不会真正打开一个浏览器,在我们看来,可见的东西才会觉得是真实的,需要的时候,可以调用截图的 api。
4、安装 selenium
pip3 install selenium
5、常用功能
-
控制浏览器:如调整窗口大小
-
找元素(定位)
-
操作元素
-
鼠标事件
-
键盘事件
-
设置元素等待
-
多 frame、iframe 切换 / 多窗口切换
调用
switch_to.frame()
和switch_to.window()
-
处理警告框 如接受警告框:
driver.switch_to_alert().accept()
-
上传/下载文件 更复杂的上传/下载需要编写 Autoit 脚本
-
操作 Cookie
-
调用 JS 调用
execute_script()
6、Selenium IDE
通过浏览器插件的形式提供。
功能点备注:
1、断言和验证的区别:与断言
相比,当执行验证
命令失败后不会终止测试。
2、pause 和 waitfor 的区别: pause 来设置固定时间的体眠,而 waitfor 则用于在一定时间内等待某一元素显示。
3、支持将录制内容导出为代码,支持类型如下:
Ruby/Rspec/Webdriver
Ruby/Rspec/Remote Control
Ruby/Test: Unit/ Webdriver
Ruby/Test: Unit/Remote Control
Python/unittest/Webdriver
Python/unittest/Remote Control
Java/Junit4/Webdriver
Java/Junit4/Webdriver Backed
Java/Junit4/Remote Control
Java/Junit3/Remote Control
Java/TESTNG/Remote Control
C#/Nunit/Webdriver
C#/Nunit/Remote Control
7、Selenium Grid 2
(1)介绍
利用 Selenium Grid 2 可以在不同的主机上建立主节点(hub)和分支节点(node),可以使主节点上的测试用例在不同的分支节点上运行。对不同的节点来说,可以搭建不同的测试环境(操作系统、浏览器),从而使一份测试用例得到不同环境下的执行结果。
(2)安装
Selenium Grid 2 的时候,不再提供单独的包,其功能已经集成到 Selenium Server 中,所以,需要下载和运行 Selenium Server オ可以使用 Grid 2 的功能。
下文中 Selenium Grid 2 都简称为 Selenium Grid。
(3)缺点与改进
Selenium Grid 只是提供多系统、多浏览器的执行环境,Selenium Grid 本身并不提供并行的执行测试用例。所以建议使用多线程技术结合 Selenium Grid 实现分布式并行地执行测试用例。
七、 自动化测试工具 - unittest(python单元测试框架)
在 Python 语言下有诸多单元測试框架,如 doctest、unittest、pytest、nose 等,unittest
框架(原名 Pyunit 框架)为 Python 语言自带的单元测试框架,Python2.1 及其以后的版本已将 unittest 作为一个标准模块放入 Python 开发包中。
1、概念
单元测试
本身就是通过一段代码去验证另一段代码。
(1)Test Case
一个 Testcase 的实例就是一个测试用例
。
-
一个用例为一个完整的场景,从用户登录系统到最终退出并关闭浏览器。
-
一个用例只验证一个功能点,不要试图在用户登录系统后把所有的功能都验证一遍。
-
用例与用例之间尽量避免产生依赖。
-
一条用例完成测试之后需要对测试场景进行还原,以免影响其他用例的执行。
(2)Test Suite
一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起来执行,这就产生了测试套件
Testsuite 的概念。
(3)Test Runner
包含执行策略和执行结果。
(4)Test Fixture
对一个测试用例环境的搭建和销毁,就是一个 fixture。
2、使用
待写
3、生成 HTML 测试报告
HTMLTestRunner
是 unittest 的一个扩展,它生成易于使用的 HTML 测试报告。
待写
4、缺点
跟上面说的 Selenium Gird 一样,unittest 单元测试框架本身并不支持多线程技术,它不能像 Java 的 TESTNG 框架一样通过简单的配置就可以使用多线程技术执行测试用例。
八、自动化测试高级应用
1、自动发邮件功能
SMTP (Simple Mail Transfer Protocol)是简单邮件传输协议。
Python 的 smtplib
模块提供了一种很方便的途径用来发送电子邮件。
可用于如测试时结果的告知。
2、Page Object 设计模式
Page 对象(Page Object)
的一个基本经验法则是:凡是人能做的事,page 对象通过软件客户端都能够做到。因此,它也应当提供一个易于编程的接口并隐藏窗口中底层的部件。所以访问一个文本框应该通过一个访问方法(accessor method)来实现字符串的获取与返回,复选框应当使用布尔值,按钮应当被表示为行为导向的方法名。page 对象应当将在 GUI 控件上所有查询和操作数据的行为封装为方法。一个好的经验法则是,即使改变具体的控件,paee 对象的接口也不应当发生变化。
也可以建立一个 base 的 Page 对象,让别的 page 继承它。
很像面向对象编程思想里的接口与实现。
九、自动化测试项目实战
待写
今天关于可以单独使用Selenium来自动化Intranet Web门户的测试,其中门户上的链接指向SAP应用程序的分享就到这里,希望大家有所收获,若想了解更多关于java+selenium+Web API 自动化测试框架分享、SAP CRM WebClient UI Selenium自动化UI测试的一些调试步骤、Selenium 4.0-最新的测试自动化工具、Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记等相关知识,可以在本站进行查询。
本文标签: