自动化测试
主要用于回归测试
基于ui层面的自动化测试
什么叫自动化测试:
1、广义上:自动化包括一切通过工具(程序)的方式来 代替或辅助 手工测试的行为都可以看做自动化
2、狭义上:通过工具 记录或编写脚本 的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而 代替或辅助 人工对系统的功能进行验证
转换条件:
1、2级正向用例
自动化的局限性:
1. 发现的缺陷少
2. 界面ui测试不可能转换成自动化
3. 不能灵活处理意外事件或突发状况
4. 时间成本高
5. 项目的局限性
为什么要做自动化测试
1.避免重复的工作
2.节约时间、人力成本
3. 测性能,模拟大数据,多用户同时使用
适合自动化的项目
1.需求变动不频繁
2.项目周期长
3.脚本复用
变动大的人工,变动不大自动化
工具
项目系统架构:B/S 、 C/S
B/S架构:autoRunner、robotFramework、Selenium2Library….
C/S架构:qtp、autoRunner…..
自动化测试‘框架’RFS:
RobotFramework+ Selenium2Library(测试库)
基于python
Robot Framework特点
1.使用简单
2.非常丰富的库(标准库、加载其他库)
3.像编程一样编写
4.支持开发系统关键字
rfs默认启动驱动为火狐的
定位方式问题:
遇见tr有可能什么方式都定位不了
id,name…(优先)、绝对路径、相对路径
定位方式:
Id\name元素定位
id,name…(查看源码唯一id和name)(优先使用)
Xpath定位
什么是xpath,含义
xml路径语言,XPath 是一门在 XML文档中查找信息的语言
XPath 使用路径表达式在 XML文档中进行导航
XPath 包含一个标准函数库
XPath 是 XSLT中的主要元素
XPath 是一个 W3C标准
绝对路径:
完整(源码copyxpath)
层级太深不建议使用绝对路径
路径前最好加上xpath=xxxxx(有些不加有问题)
//:表示当前层级下; *:表示某个标签名
图片验证码(补充):
1.因变动大,手工测
2.叫开发注释掉图片验证码
3.叫开发给一个万能验证码
相对路径:
相对于现在所处位置的路径
有tr表单嵌套,相对路径定位会不成功
1.通过索引定位
xpath=//input 。。。。xpath=//input[1] 都可以
2.通过元素本身属性值定位
1. *改成input(他的上级)效果相同。
2.name改成type或value属性效果相同(只要唯一就可以)
3.找上级:
没有id、name可以找上级,上级不行就再上级,一直往上找
自定义关键字
分层设计
1.脚本的分离(用户关键字)
1.封装步骤,调用关键字使用(全选用例列表,右键导出关键字)
2.直接右键new user keyword
单条数据封装:
形成用例:
多条数据封装:
形成用例:
*2.数据的分离(变量、.py文件)
1.定义一个变量(右键newscalar全局变量)
2.建数据,数据放在文件后缀为.py里(输入中文时,数据前面加u(作用统一字符类型)),建完文件放在目录文件夹里
3.调用文件中的数据(右键newuser keyword,把调用数据的用例封装了)
例子:
最终完成版用例:
3.业务流程的分离(资源)
1.把变量和封装关键字存放在新建的resource里面(右键目录)
2. 有可以复用的模块(如:新增和编辑),可以把组件里的关键字单独封装成单个的(如:新增里的每个输入框单独一个),再在用例里调用
乱码注意:
变量和封装关键字存放在新建的resource里面(右键目录),打开文件有乱码情况:
1.进入C:\Python27\Lib\site-packages\robot\utils
2.修改encodingsniffer.py文件,把cp437改成cp936(打开方式:edit with idel)
例子:
else:
DEFAULT_SYSTEM_ENCODING = 'cp1252'
DEFAULT_OUTPUT_ENCODING= 'cp437'
总结:
我们使用robotframework结合selenium2library来做自动化测试,简称rfs。
阶段:回归测试、验收测试
简单、丰富的库、支持开发系统关键字
关键字驱动测试方法
特定操作步骤,执行脚本
分离的用处:测试流程清晰、简化案例设计、以文本形式单独保存
Qtp:易产生重复脚本,仅支持ie和fifox,,操作平台仅支持windows
Rfs:python、java。。。跨平台
robotframework相关安装包和安装顺序:
1、安装python-2.7.5.msi(一切的基础,可用已经下载好的包,也可以自行到下面网站上下载http://www.python.org/download/releases/2.7.5/)
2、setuptools (用于后续的一些测试库的安装支持,https://pypi.python.org/pypi/setuptools/)
3、wxPython2.8-win32-unicode-2.8.12.1-py27.exe(wxPython,RIDE需要他的支持,http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/ )
4、robotframework-2.8.1(robotframework本身。http://code.google.com/p/robotframework/downloads/list)
5、robotframework-ride-1.2.3.win32.exe(robotFramework的IDE,目前最新1.3.0,http://code.google.com/p/robotframework-ride/downloads/list,如有中文乱码问题请参考:http://blog.youkuaiyun.com/tulituqi/article/details/7931069)
在环境变量PATH中加入Python的路径,如果安装在D:\Python27,那么一般建议在PATH中增加D:\Python27和D:\Python27\Scripts 两个路径。
6、decorator-3.3.3(S2L库的依赖库。https://pypi.python.org/pypi/decorator/3.4.0)
7、docutils-0.11(S2L库的依赖库。https://pypi.python.org/pypi/docutils/0.11)
8、selenium-2.21.3(是selenium的原生python库,要到python官网下载https://pypi.python.org/pypi/selenium/2.35.0,而IEDriver.exe要到GOOGLE下载http://code.google.com/p/selenium/)
9、robotframework-selenium2library (selenium2测试库,基于webdriver驱动,最新release是1.5.0,下载:https://github.com/rtomac/robotframework-selenium2library/releases,如有问题请参考:http://blog.youkuaiyun.com/tulituqi/article/details/7604967 )
10、pywin32-218.win32-py2.7.exe(版本较多,请注意py版本http://sourceforge.net/projects/pywin32/files/pywin32/)
11、AutoItLibrary-1.1(必须先安装上面的pywin32,并且Python的安装目录不能有空格,如果有空格会导致注册autoit的dll时出错。版本一直是1.1,下载路径:http://code.google.com/p/robotframework-autoitlibrary/)
13、IE的设置:
1).IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上)
2).IE选项设置的连接页中,局域网设置里的代理服务器设置,不能勾选。如果需要配置代理,请使用上面的pac自动配置脚本来使用代理。
3).IE页面的显示比例要为100%
4).下载IEDriverServer.exe文件,放到环境变量path路径的目录里或把他所在的目录加到path环境变量中
a、如果是exe的直接安装就好了。
b、对于只有源代码的测试库(只有py文件)的安装,请在进入cmd命令行后(注意以管理员身份运行),进入测试库的目录(有setup.py的目录),输入python setup.py install进行安装。
如果提示python不是命令,请把python的安装目录加到环境变量的path中。
c、对于只有egg文件的测试库的安装,需要先安装setuptools(写这篇文章时最新版本为setuptools-0.6c11.win32-py2.7.exe),安装之后,在命令行使用easy_install加egg文件名或目录名,例如easy_installdocutils-0.9-py2.7.egg
以上两个在命令行进行安装的方式,必须先要在环境变量PATH中加入Python的路径,如果安装在D:\Python27,那么一般建议在PATH中增加D:\Python27和D:\Python27\Scripts 两个路径。