自动化测试培训2018.7.6培训目标:通过本次培训使学员对自动化测试有基本的了解,掌握RobotFramework和Jenkins的环境搭建,能够进行基本的测试设计和开发,为深入学习打下良好的基础。培训时间:4个小时培训大纲自动化测试简介(0.5小时)软件测试技术的发展趋势自动化测试的重要作用自动化测试框架和工具介绍RobotFramework(1.5小时)RobotFramework简介RobotFramework安装RobotFramework示例演示Jenkins(1.5小时)Jenkins简介Jenkins安装和配置Jenkins示例演示(Jenkins+Maven+GIT)交流讨论(0.5小时)自动化测试简介-软件测试技术的发展趋势自动化软件测试技术应用越来越普遍测试技术不断细分云技术、容器化和开源工具使得测试成本下降测试驱动开发TDDDevOps(DevelopmentandOperations)越来越流行探索式软件测试基于模型的软件测试DevOps(DevelopmentandOperations)瀑布模型敏捷开发精益方法持续集成持续交付持续部署持续运营自动化测试简介-自动化测试的重要作用软件测试V模型把测试分为4个级别,从高到低分别是验收测试、系统测试、集成测试和单元测试。自动化测试简介-自动化测试的重要作用为什么需要自动化测试?软件测试存在大量重复性的工作;缺陷修改后需要进行回归测试;”穷尽所有测试是不可能的”、“软件测试是为了找到软件的缺陷,而不是证明软件没有缺陷”是软件测试的两条原则;软件测试的工作量非常大等等.自动化测试简介-自动化测试框架和工具介绍单元测试、集成测试xUnit,JUnit、NUnit系统测试/功能测试Selenium/RobotFramework持续集成测试Jenkins构建工具Ant、Maven、GradleRobotFramework-RF简介robotframework是一种基于可扩展关键字驱动自动化测试框架。RobotFramework是开源软件,由NokiaSiemensNetworks开发并提供支持特性易于重用,采用表格式语法,统一测试用例格式;重用性好,可以利用现有关键字来组合新关键字;结果报告和日志采用html格式,易于阅读;平台、应用无关,可以用于测试不同平台上的不同的应用;易于扩展,提供了简单的测试库API,用户可以使用Python或Java自定义测试库;易于集成到现有的构建工具(持续集成系统),提供了命令行接口和基于xml的输出文件;功能全面,支持SeleniumWeb测试,JavaGUI测试,运行进程,Telnet,SSH等;支持创建数据驱动的测试用例;支持变量;提供标签以分类和选择将被执行的测试用例;易于与版本管理集成,测试套件是文件和目录,可以被版本管理系统管理;RF架构-官方RF架构-我们的理解标准库BuiltIn:包含了常用的关键字,自动导入。Collections:包含了处理列表和字典的关键字。DateTime:支持创建和验证日期和时间。Dialogs:支持暂停测试执行,便于从用户获得输入。OperatingSystem:支持执行操作系统相关的各种任务。Process:支持执行系统进程。Remote:远程库接口,没有自己的关键字。Screenshot:提供捕获和存储桌面屏幕截图的关键字。String:操作字符串,验证字符串值的库Telnet:支持连接到Telnet服务器,执行Telnet命令。XML:验证和修改XML文件的库针对不同应用的测试库SeleniumLibrary:Web自动化测试AutoItLibrary:WindowsGUI自动化测试DatabaseLibrary:数据库测试HTTPRequestLibrary:HTTP自动化测试AppiumLibrary:移动应用自动化测试详见:工具-内置工具Rebot:生成基于XML输出的日志和报告Libdoc:生成测试库和资源文件的关键字文档Testdoc:生成基于RobotFramework测试用例的HTML文档。Tidy:清理和变更RobotFramework测试数据文件的格式工具-编辑器工具Ride:独立的RF编辑器Eclipseplugin:RFEclipse插件RobotPluginforIntelliJIDEA:RFIntelliJIDEA插件Notepad++:Notepad++RF支持详见:工具-构建工具JenkinspluginMavenpluginAnttask详见:安装安装python2.7,安装robotframework(验证是否成功pybot--version)安装wxPython2.8-win32-unicode-2.8.12.1-py27(RIDE依赖)安装集成开发环境RIDE安装selenium2Library注意安装顺序,提前安装selenium2Library失败安装Python双击python-2.7.14.msi安装Python指定安装目录安装Python定制安装,将python.exe增加到环境变量Path,注意到安装了pip,Testsuite安装RobotFramework在命令行输入pipinstallrobotframework安装RobotFramework升级RF,在命令行输入:Python–mpipinstall–upgradepip查看安装的RF版本Pybot--version安装wxPython在网址下载wxPython2.8-win32-unicode-2.8.12.1-py27.exe或wxPython2.8-win64-unicode-2.8.12.1-py27.exe运行wxPython2.8-win32-unicode-2.8.12.1-py27.exe或运行wxPython2.8-win64-unicode-2.8.12.1-py27.exewxPython安装结束安装RIDE和RIDE的启动安装:pipinstallrobotframework-ride启动:cdc:\python27\scriptsPythonride.pyRide的界面安装Seleniumlibrary在命令行输入:pipinstallrobotframework-seleniumlibrary查看pip命令pip--help查看已安装包piplistRobotFramework-RF示例演示WebDemo是RF官方提供的一个RFSelenium测试示例,其中包含了一个用Python编写的简单的Web应用demoapp。下载WebDemo,解压文件WebDemo-20150901.zip,例如解压到c:\Python27\workspace输入如下命令,启动demoapp:cdC:\Python27\workspace\WebDemo\demoappPythonserver.py在浏览器网址输入:,输入用户名:demo,密码:mode,可以登录成功。运行准备需要以管理员身份运行IE,将所有四个区域的‚启用保护模式‛选项清除,否则WebDriver会报这个错误确认IE没有设置proxyRide中演示WebDemo打开目录WebDemo,File-OpenDirectory浏览测试用例,在资源文件resource.robot中修改导入的库为SeleniumLibrary根据情况修改变量${BROWSER}的值,火狐浏览器Firefox;谷歌浏览器Chrome,IE浏览器internetexplorer将浏览器的驱动放在PATH指定的目录中,火狐浏览器geckodriver;谷歌浏览器chromedriver,IE浏览器IEDriverServer执行测试,按F8查看测试报告和日志,点击Run页签中的Report或Log创建测试项目点击File-NewProject测试项目的类型可以是文件或目录,选择文件时,测试项目中只包含测试用例;选择目录时,测试项目可以包含测试套件和测试用例。建议选择目录类型,这样更便于组织测试用例。格式可以选robot,txt,tsv,或html格式创建测试套件右击测试项目,点击NewSuite测试套件也可以选择文件或目录类型,我们选择文件类型。创建测试用例右击测试套件,点击NewTestCase新建两个测试用例valid_login和invalid_login创建资源文件右击测试项目,点击NewResource我们可以在资源文件中导入测试库、定义一些常量添加测试库在资源文件编辑器中点击Library还可以在测试项目或测试套件编辑器中添加测试库,测试库提供特定应用的关键词。增加常量在资源文件编辑器中,点击ADDScalar,常量是有确定值的WebDemo的资源文件中定义了如下的量:增加自定义关键字右击资源文件,点击NewUserKeyword,输入关键字名称,用户关键字由一组标准关键字组成编辑自定义关键字在关键字编辑器中可以增加关键字,按F5可以搜索关键字在测试套件中引用资源测试用例中用到的资源需要在测试套件里直接引用编辑测试用例测试用例由关键字组成执行测试点击Run页签中的Start或按F8键查看测试日志点击Run页签中的Log测试报告点击Run页签中的Report使用selenium2Libraryselenium2Library/SeleniumLibrary将webdriver与robotframework连接起来selenium2Library提供了非常多的内置关键词浏览器操作的关键词OpenBrowserMaximizeBrowserWindowGoToGoBackReloadPageCloseWindowCloseBrowserCloseAllBrowsers其他常用关键词点击ClickButton|locatorClickElement|locatorClickImage|locatorClickLink|locatorDoubleClickElement|locator输入InputPassword|locator|textInputText|locator|text定位元素Locator可以用id或name定位界面元素也可以使用XPath或Dom,但是,必须用XPath=或Dom=来开头最好使用id来定位,强烈建议强制要求开发为所有需要交互的界面元素设定id,所以,locator最好以id=,name=,identifier=定位元素可以使用firefoxfirebug或ie8来辅助定位。右击页面元素,点击查看元素。检查结果验证页面是否包含相应结果PageShould(Not)ContainButtonPageShould(Not)ContainCheckboxPageShould(Not)ContainElementPageShoul