① WebUI 自动化测试的经典设计模式:PO
先来看下未使用 PO(PageObject) 设计模式下的代码,以网页版网络登录为例来说明。
非 PO(PageObject) 模式下的代码如下,所有内容全部写在一个方法里。
存在的问题:
PO(PageObject) 模式优化后的代码
1、WebUI 自动化需要的 driver 基础操作
2、登录页面元素获取
3、登录逻辑业务的封装
4、登录测试用例将使用以上3个页面对象
可以发现,使用 PO(PageObject) 模式优化后的代码,有以下明显优势:
1)、将以下3个模块进行了单独封装 【降低了模块之间的耦合度,使层次更加清晰合理,便于后期维护与复用】:
2)、如果前端页面有 定位元素的 type 或 value 发生变化时,只需要修改 elements.py 文件中元素信息即可 ,不需要在测试业务模块中进行修改。
② 【web测试】界面测试(UI)
简称UI测试,测试功能模块界面上看到的所有元素(包括文字、控件等)颜色风格是否统一,布局是否合理、美观,符合用户习惯等等
核实用户与软件之间的交互,确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能
如:页面基调颜色刺眼;用户登入页面比较难于找到;文字中出现错别字;页面图片范围太广
缺陷影响:用户友好性、人性化、易操作性
进入一个页面测试,首先是检查title、页面排版、字段等,而不是马上进入文本框校验
(1)页面名称title是否正确
(2)文字格式统一性,字体属性是否正确
(3)元素大小是否合适,元素内容是否显示正确、易懂、友好
(4)排版是否整齐,界面元素是否对齐方式统一
(5)列表项显示字段是否齐全,列表项字段名称是否跟表单统一
(6)同一页面,是否出现字段名称相同、值取不同的问题。
(7)数据加载情况。
(1)文案:字体、字号、格式、规范(标题和正文、中英文换行、错别字、大小写、全半角标点);
(2)图片:类型、大小、尺寸、是否变形;
(3)布局:尺寸大小、位置合理、排序规律、对齐方式
(4)控件:对话框、文本框、滑动滚轮、上下微调按钮、选项按钮
(5)快捷键:是否重复、如何切换、是否冲突、和系统常用快捷键冲突、和其他软件快捷键冲突、常用键盘键
③ 一般大公司UI自动化测试使用什么工具呢
1、Selenium:该软件是一个用于Web应用程序测试的工具。其测试直接运行在浏览器中,支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。支持Net、Java、Perl等不同语言的测试脚本。
2、Soapui:SoapUI是一款开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。可快速的帮助用户进行http的接口测试,并且还支持进行检查,监控、符合等功能。
3、Robot Framework:该软件是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。
4、QTP:该软件提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。
5、Jmeter:JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。
④ Web测试的主要内容和测试方法有哪些
测试分类:
1、界面测试
1)给用户的整体感:舒适感;凭感觉能找到想要找的信息;设计风格是否一致
2)各控件的功能
2、功能测试
1)删除/增加某一项:是否对其他项造成影响,这些影响是否都正确
2)列表默认值检查
3)检查按钮功能是否正确:新建、编辑、删除、关闭、返回、保存、导入、上一页、下一页、页面跳转、重置(常见错误)
4)字符串长度检查:超出长度
5)字符类型检查
6)标点符号检查:空格、各种引号、Enter键
7)特殊字符:常见%、“、”
8)中文字符:是否乱码
9)检查信息完整:查看信息,查看所填信息是否完整更新;更新信息,更新信息与添加信息是否一致
10)信息重复:需唯一信息处,比如重复的名字或ID、重名是否区分大小写、加空格
11)检查删除功能:不选择任何信息,按Delete,看如何处理;选择一个或多个进行删除;多页选、翻页选删除;删除是否有提示
12)检查添加和修改是否一致:添加必填项,修改也该必填;添加为什么类型,修改也该什么类型
13)检查修改重名:修改时把不能重名的项改为已存在的内容
14)重复提交表单:一条已经成功提交的记录,返回后再提交
15)检查多次使用返回键:返回到原来页面,重复多次
16)搜索检查:存在或不存在内容,看搜索结果是否正确;多个搜索条件,同时输入合理和不合理条件;特殊字符
17)输入信息的位置
18)上传下载文件检查:功能是否实现,
上传:上传文件是否能打开、格式要求、系统是否有解释信息、将不能上传的文件格式修改后缀为可上传的文件格式;
下载:下载是否能打开、保存、格式要求
19)必填项检查:必填项未填写;是否有提示,如加*;对必填项提示返回后,焦点是否自动定位到必填项
20)快捷键检查:是否支持快捷键Ctrl+C、Ctrl+V、backspace;对不允许做输入的字段(如:下拉选项),对快捷方式是否也做了限制
21)Enter键检查:输入结束后按Enter键,系统如何处理
22)刷新键检查:按浏览器刷新键如何处理
23)回退键检查:按浏览器回退键如何处理
24)空格检查:输入项输入一个或多个空格
25)输入法半角全角检查:比如,浮点型,输入全角小数点“。”或“. ”,如4. 5;全角空格
26)密码检查:输入加密方式的极限字符;密码尽可能长
27)用户检查:不同种类管理员用户的不同权限,是否可以互相删除、管理、编辑;一般用户的权限;注销功能,老用户注销再注册,是否为新用户
28)系统数据检查:数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程而丢失数据。
29)系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可以迅速恢复
30)确认提示检查:系统更新、删除操作:是否有提示、取消操作;提示是否准确;事前、事后提示
31)数据注入检查:对数据库注入,特殊字符,对SQL语句进行破坏
32)时间日期检查:时间、日期、时间验证:日期范围是否符合实际业务;对于不符合实际业务的日期是否有限制
33)多浏览器验证
3、性能测试
1)压力测试:实际破坏一个Web应用系统,测试系统的反应,测试系统的限制和故障恢复能力
2)负载测试:在某一负载级别上的性能,包括某个时刻同时访问Web的用户数量、在线数据处理的数量
3)强度测试:测试对象在性能行为异常或极端条件下(如资源减少或用户过多)的可接受性,以此验证系统软硬件水平
4)数据库容量测试:通过存储过程往数据库表中插入一定数量的数据,看是否能及时显示
5)预期指标的性能测试:在需求分析和设计阶段会提出一些性能指标,对于预先确定的性能要求要首先进行测试
6)独立业务性能测试:对核心业务模块做用户并发测试,包括同一时刻进行完全一样的操作、同一时刻使用完全一样的功能
7)组合业务性能测试:模拟多用户的不同操作,最接近实际用户使用情况,按用户实际的实际使用人数比例来模拟各个模块的组合并发情况
8)疲劳强度性能测试:系统稳定运行情况下,以一定负载压力来长时间运行系统的测试
9)网络性能测试:准确展示带宽、延迟、负载、端口的变化是如何影响用户的相应时间的
10)大数据量性能测试:实时大数据量,模拟用户工作时的实时大数据量;极限状态下的测试,系统使用一段时间,积累一段数据量时能否正常运行,以及对前面两种进行结合
11)服务器性能测试:在进行用户并发性能测试、疲劳强度、大数据量性能测试时,完成对服务器性能的监控,并进行评估
12)一些特殊的测试:配置测试、内存泄漏的一些特殊测试
4、可用性测试(接口测试)
1)整体界面测试
2)多媒体测试
3)导航测试
5、客户端兼容性
平台测试:windows;unix;macintosh;linux
浏览器测试:不同厂商的浏览器对Java、Javascript、ActiveX、plug-ins或不同的HTML的规格
不同的支持;框架和层次结构在不同浏览器也不同的显示
6、安全性
安全性测试要求:
1)能够对密码试探工具进行防范
2)能够防范对Cookie攻击的常用手段
3)敏感数据保证不用明文传输
4)能防范通过文件名猜测和查看html文件内容获取重要信息
5)能保证在网站收到工具后在给定时间内恢复,重要数据丢失不超过1小时
web的性能测试工具:
随着Web2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况。
因此,当Web网站遇到访问高峰时,容易发生服务器响应速度变慢甚至服务中断。
为了避免这种情况,需要一种能够真实模拟大量用户访问Web应用系统的性能测试工具进行压力测试,来测试静态HTML页面的响应时间,甚至测试动态网页(包括ASP、PHP、JSP等)的响应时间,为服务器的性能优化和调整提供数据依据。
1、企业级自动化测试工具WinRunner
MercuryInteractive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。
2、工业标准级负载测试工具Loadrunner
LoadRunner是一种预测系统行为和性能的负载测试工具
3、全球测试管理系统testdirector
TestDirector是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。
4、功能测试工具RationalRobot
IBMRationalRobot是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。
它集成在测试人员的桌面IBMRationalTestManager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。
这种测试和管理的双重功能是自动化测试的理想开始。
5、单元测试工具xUnit系列
目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit(Delphi),NUnit(.net),PhpUnit(Php)等等。
该测试框架的第一个和最杰出的应用就是由ErichGamma(《设计模式》的作者)和KentBeck(XP(ExtremeProgramming)的创始人)提供的开放源代码的JUnit.
6、功能测试工具SilkTest
BorlandSilkTest2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。
这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。
7、性能测试工具WAS
是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。
透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。
8、自动化白盒测试工具Jtest
Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。
parasoft同时出品的还有C++test,是一款C/C++白盒测试工具。
9、功能和性能测试的工具JMeter
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。
10、性能测试和分析工具WEBLOAD
webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。
(4)web方式ui性能测试扩展阅读:
漏洞测试
企业网站做的越来越复杂、功能越来越强。不过这些都不是凭空而来的,是通过代码堆积起来的。如果这个代码只供企业内部使用,那么不会带来多大的安全隐患。
但是如果放在互联网上使用的话,则这些为实现特定功能的代码就有可能成为攻击者的目标。
天眼举一个简单的例子。在网页中可以嵌入SQL代码。而攻击者就可以利用这些SQL代码来发动攻击,来获取管理员的密码等等破坏性的动作。
有时候访问某些网站还需要有某些特定的控件。用户在安装这些控件时,其实就有可能在安装一个木马(这可能访问者与被访问者都没有意识到)。
为此在为网站某个特定功能编写代码时,就要主动出击。从编码的设计到编写、到测试,都需要认识到是否存在着安全的漏洞。
天眼在日常过程中,在这方面对于员工提出了很高的要求。各个员工必须对自己所开发的功能负责。
已知的病毒、木马不能够在所开发的插件中有机可乘。通过这层层把关,就可以提高代码编写的安全性。
⑤ web ui自动化测试框架有哪些
冒昧的说一句,您这个问题问的可能比较大。
因为从自动化测试角度讲的测试框架有很多种;而且并没有什么固定的条条框框。全部是根据测试需要及公司产品开发现状进行搭建的。从通俗的
整体的角度讲只要满足:测试输入(脚本编写)-》测试执行-》...
⑥ UI测试、功能测试和兼容性测试
关于网站 测试 的几个小套路,希望对大家有所帮助。
因为所在团队没有专业测试人员,所以测试 工作 由我这个产品新人来负责。本文是抱着总结才能提升的小心思,想来简单写写从测试零经验到开发葛葛“谈心”的次数逐渐变少,这期间所踩过得坑和心得体会。
一、 UI测试
用户界面测试主要是拿待测网页和设计稿进行对比,个人觉得主要需做到以下4点:
1.注重细节:
这点最基本,就是对比时细心、细心再细心。像我现在被虐到网页上元素和设计稿差一个像素都能看出来…
2.勿忘整体性:
由于PC网页页面空间大,模块多,很容易在测试时只注意到模块内设计元素是否正确,而忽略了模块间的间距或整个页面的布局是否正确。所以最好按照由局部到整体的顺序测试。
3.注意页面间相互对比:
即注意相同系列页面、页签布局一致性。就是说的是同一系列页面中同类元素和模块的样式、间距一般要相同;同一个tab下,不同选项对应
的页签中同类元素和模块的样式、间距一般要相同。例如下图QQ空间-日志页面里我的日志和私密日记tab中,红框圈出的位置高度是否一致。
一般情况下这些不一致问题出现的情况不多,毕竟相类似的布局前端同学应该会用相同的盒子,但是测试时还是需要留意。
4.注意极端情况下显示情况:
即要注意长度可变的元件、模块或字段在极端情况下的显示是否正常。
例如: 文章 标题最多可显示50字符(25汉字),测试时就要在所有会出现标题的位置(文章列表页、推荐边栏、转发弹框…)是否能正常显示含有50字符的标题,会不会出现破框而出、自动切掉等情况。
由于UI测试时需要检查的细节很多,特别是像我们团队,网站还在搭建中并未上线,UI测试的工作量更是大,测久了难免会觉得枯燥繁琐,但其实每项任务都能总结出套路、有所收获,故下面仅列出我平时在测这部分时的主要注意点和心得。
UI测试注意点总结:
1、模块间距
2、元素间距
3、不同类型文本(数字、汉字、英文)颜色、格式(全角、半角)大小、字体、(不必须)
4、固定文案:内容的可读性、正确性?排版的合理性
5、可变字段:极多、极少文字的排版情况
6、Icon用错、用混
7、相似页面的差异性和一致性
小体会:
其实界面测试虽然没啥 技术 含量,但测久了就会发现自己对网页元素有时彼此间的间距差了1、2个像素,整体的视觉效果就尺寸和布局的敏感度有提升,例如像同样一组元素,会大有不同, web 是这样, 移动 端更是如此。
随手画张图举个栗子:左图网页做出来名称、作者、互动统计三者之间行距相等,中文字大小相
同,而设计稿原本应如右图,行距不同,不同字段的字号也不同。所以假如测试时遇到类似这种问题,我们除了可以提个bug,还会被引导去思考设计初衷,即利用间距细微差异进行视觉分组,利用字号细微差异突出主次。
二、 功能测试
1.操作反应:
(1) 页面元素(按钮、锚文本、输入框…)自身状态变化:鼠标移入/移出时效果、点击后效果、获取/失去焦点时效果…(可以想想axure里的用例状态)
eg:鼠标移入按钮,按钮是底色是否应改变;若输入框内有默认提示文字,则是当输入框获得焦点后文字就消失,还是用户输入文字后提示文字才消失…
(2)操作成功后续反应:页面跳转、弹框、提示文字…
a.页面跳转:
页面切换方式:另开页面、本页切换
页面起始定位:页面起始位置、页面其他锚点(例如用户想评论某文章,在列表页点评论按钮后,就会在另开的文章内容页直接定位到评论区)
b.弹框:
匹配情况:弹出的弹框是否和触发条件匹配
出现位置:一般情况下要一致。因为弹框使用不同插件,可能导致弹出位置不同。
显示时间(非操作类弹框):某些仅起到提示功能的弹框会自动显示若干秒关闭。一般情况此类弹框上文案较少,显示秒数应该是全站一致的。
c.提示文字:
匹配情况:出现的提示文案是否和触发条件匹配
关于操作成功后续反应,以上主要是在已确定会触发某反应情况下,测试其正确性。其实这里更重要的是要考虑在前置条件不同的情况下,对某元素进行相同操作,会触发什么不同的反应。即需要对各类情况进行穷举。
eg:点击关注按钮触发反应穷举:
a.未登录用户点击该按钮后效果;
b.已登录用户点击该按钮后效果(b1.未关注过对方、b2.已关注过对方、b3.自己关注自己)
穷举时可以参考PRD,但不要局限于PRD上列出的情况,毕竟有时也许PRD上会有小疏漏,要是程序员做的时候发现疏漏,就自己随手码了一个简易提示而忘记通知产品,而测试的时候也没触发到,等用户实际操作出来就会造成不佳的用户体验。
原文来自:http://www.51testing.com/html/10/n-3714410.html