环境:Win7 + Robot Framework + IE9
任务:下载网页中链接所指向的文件
参考:File Downloads With Selenium — Mission Impossible?
过程:
阶段一:
概述:用 MS UI Automation 操作浏览器控件。
MS UI Automation + NRobotRemote + Selenium2Library + Robot Framework (CPython)
原因:IE9不支持设置成:”点击链接,自动下载文件“。
具体:
> 用 UI Automation 实现包含必要的关键字的 test library。
> NRobotRemote 载入 test library,提供关键字服务。
> pybot(用 CPython 驱动的Robot Framework)调用上述关键字服务,操控浏览器控件,模拟人工下载文件。
缺点:
> 太复杂。 杀鸡用牛刀。就为了下载个文件,启了另一个“重量级”的 test library. 而且该test library 必须以 Remote 的形式存在,否则不能与 Selenium2Library “共存”。
> 效率低。 除了复杂外,UI Automation 查找控件的效率并不高 (比不上 Selenium2Library 查找 html 元素的效率)。
> 不稳定。 UI Automation 本身对控件焦点的依赖度很高,会导致测试过程出错率加大。而且 UI Automation 要求不能锁屏(锁屏会导致控件句柄之类的资源被注销)。IE9 弹出的下载提示框有两种形式(View Downloads 和 Notification Bar)。在实践中发现,这两种提示框的出现没有规律(可能我没研究透),而且有时候 Notification Bar 中的控件不能支持 UI Automation (检测不到关键的按钮)。
阶段二(现在:2014.12.22):
因为阶段一的方案不稳定,所以寻求其它方案。
概述:调用PowerShell下载文件。
Robot Framework.OperatingSystem.Run_And_Return_Rc + PowerShell
过程:
> 尝试篇头参考的文章中提到的“直接下载 (用 wget)”。尝试后发现获取 Cookie 那部分比较“麻烦”(不了解 SUT 的具体实现方式,黑盒测试。)。尝试复制文件链接到另一个浏览器访问,发现输入 SUT 的用户名和密码就能下载文件。于是,成功用 wget 实现直接下载。(wget 的使用方法,语法等,自寻)。
> 进阶。使用 wget 需要先安装 wget,不够NICE。考虑使用 MS-DOS 的命令行,替代 wget。最后决定使用 PowerShell。因为 PowerShell 够强大简便;再者 Win7 自带PowerShell,无需安装其它任何额外的工具。
结果:阶段一方案的缺点都避开了。棒!
思考:
> 很多‘下载文件’需要提供用户名和密码。保管好这些信息。最好用测试专用的账号。PowerShell 支持加密字符串及读取加密后的字符串作为身份验证时的密码。( 可参考 Using PSCredentials without a prompt )(不过这种利用 PowerShell 加密解密的方法有个限制:在本机加密后得到的字符串只能在本机解密。因为密钥存储在本机。)
> UI 自动化不能滥用。UI 自动化的代价太高了。多考虑单元测试和 Service 层的自动化。
相关推荐
《RobotFramework自动化测试修炼宝典》是由齐涛著的一本专著,主要聚焦于使用Robot Framework进行自动化测试的实践与理论。Robot Framework是一款开源的通用自动化框架,尤其适合用于软件测试自动化,它提供了丰富的...
《RobotFramework自动化测试修炼宝典》是一本深入探讨如何利用Robot Framework进行自动化测试的专业书籍,配合源代码,读者可以更直观地理解并实践书中的理论知识。Robot Framework是一个开源的、通用的自动化测试...
**RobotFramework自动化测试** Robot Framework 是一款开源的通用自动化测试框架,它被广泛应用于软件测试、系统集成验证以及持续集成等多个领域。这个压缩包包含了关于Robot Framework的详细资料,包括实例源码,...
【压缩包子文件的文件名称列表】中的"Robot Framework自动化测试修炼宝典_2019PDF高清带目录完整版.pdf"可能是一本全面介绍Robot Framework的教程,包含了从基础知识到实战案例的详细内容。这本书可能分为多个章节,...
在进行Robot Framework自动化测试时,环境搭建是第一步。该框架基于Python语言,因此需要先安装Python。接着通过Python的包管理工具pip安装Robot Framework及其IDE——RIDE(Robot Framework Integrated Development...
在这个"robotframework自动化测试demo实例"中,我们可以深入学习如何利用Robot Framework进行自动化测试。 首先,Robot Framework的核心概念是测试用例(Test Cases)和关键词(Keywords)。测试用例由步骤(Steps...
RobotFramework远程执行自动化测试是一种策略,它允许在不同的物理机器上分布执行测试用例,尤其在面对跨平台或复杂依赖关系的场景时非常有用。这种技术的核心在于利用RobotFramework的Remote Library,这是一个内置...
RobotFramework 自动化测试框架 Robot Framework 是一种通用的自动化测试框架,旨在解决自动化测试中的一些问题,如自动测试用例的实现方式、自动测试用例的开发支持等。下面将对 Robot Framework 的特点、优点、...
在压缩包子文件"RobotFramework自动化测试修炼宝典_环境搭建"中,可能包含详细的步骤指南、示例代码、配置文件模板等,这些都是帮助读者更好地理解和实践测试环境搭建的宝贵资源。仔细研读并动手实践,将是提升测试...
### RobotFramework + Selenium 自动化测试 - 齐涛博客教程整理 #### 一、引言及基础知识 RobotFramework(简称RF)结合Selenium Library,为Web自动化测试提供了一个强大的框架。这种组合允许测试人员使用一种...
**Python-Robot Framework:通用自动化测试框架详解** Python-Robot Framework是一个强大且灵活的开源自动化测试框架,尤其适合于系统集成、验收测试以及端到端的业务流程验证。它的设计思路是面向关键字驱动,允许...
以下是本文档所提供的Robot Framework自动化测试相关知识点的详细说明: Robot Framework是一个通用的验收测试和验收测试驱动开发(ATDD)框架,它使用易于理解的表格形式来组织测试过程和测试数据,使得自动化测试...
《RobotFramework自动化测试修炼宝典》是一本专为软件测试人员设计的实战指南,由齐涛著。这本书深入浅出地介绍了如何利用Robot Framework进行高效、可靠的自动化测试。Robot Framework是一个开源的通用测试框架,其...
自动化测试框架RobotFramework+Selenium2 自动化测试框架RobotFramework+Selenium2是结合RobotFramework框架和Selenium2Library实现自动化测试的解决方案。下面是该框架的详细介绍: 简介 Robot Framework是一个...
自动化测试在IT行业中扮演着至关重要的角色,尤其是在软件开发的迭代和维护过程中。本解决方案将详细介绍如何使用Python3.6.3与Robot Framework3.1.2构建一套完整的自动化测试环境,同时提供配套文档,帮助用户更好...
Vscode 是一个功能强大且广泛使用的代码编辑器,而 RobotFramework 是一个流行的自动化测试框架。本文将指导读者如何使用 Vscode 编写 RobotFramework 项目,包括安装 Vscode、Python、RobotFramework 及相关插件,...
### 自动化测试框架之robot framework的应用分析 #### 一、引言 自动化测试框架是软件测试领域的重要组成部分,能够显著提高测试效率并减少人为错误。其中,**Robot Framework**作为一款开源、通用且易于扩展的自动...
**WEB自动化测试-RobotFramework验收测试框架搭建** 在软件开发过程中,自动化测试是提升效率、保证质量的关键步骤。Robot Framework是一种流行的开源自动化测试框架,它适用于多种领域,包括Web应用的验收测试。本...
### Python自动化测试平台Robot Framework快速入门 #### 一、引言与概述 Robot Framework是一个开源的通用自动化测试框架,适用于多种应用层面上的自动化测试需求。该框架支持关键字驱动的测试方法,允许用户通过...