Robot Framework 教程 (4) - 自定义Library
RobotFrame Work为我们提供了包括OS、Android、XML、FTP、HTTP、DataBase、Appium、AutoIt、Selenium、Watir等大量的库。在使用过程中,除这些库之外,对于某些我们自己特定的应用逻辑,我们还需要开发自己的Library,以便于进行自动化测试。
本篇我们以baidu搜索英文时的自动翻译为例,介绍一下如何开发自己的Library。
0.目标
我们这次使用的示例的业务逻辑如下,打开baidu,搜索英文单词“Test”,查看页面中是否含有Test的自动翻译结果(我们以翻译结果“检验”做验证),手动执行效果如图
1.编写脚本
我们使用Python的urllib编写测试脚本,并保存到当前RobotFrame Work的测试项目目录下,文件名为MyLibrary.py 。
# -*- coding=utf-8 -*- import urllib import urllib2 class MyLibrary(): def Is_Translate(self,english,chinese): u''' 检查输入的英文单词在进行baidu搜索时,是否调用了baidu英文翻译引擎 ''' #url地址 #url='https://www.baidu.com/s' url='http://www.baidu.com/s' #参数 values={ 'ie':'UTF-8', 'wd':'test' } #进行参数封装 data=urllib.urlencode(values) #组装完整url #req=urllib2.Request(url,data) url=url+'?'+data #访问完整url #response = urllib2.urlopen(req) response = urllib2.urlopen(url) html=response.read() x=chinese in html print x def test(): lib=MyLibrary() lib.Is_Translate( "Test", "测验") if __name__ == '__main__': test() print 'finished'
在本地运行脚本,检验脚本的正确性。
2.引用自定义Library
在TestSuit节点上进行编辑,添加Library,Library名称为我们的脚本文件名MyLibrary.py 。
按F5键,查看刚刚引入的Library
3.添加测试用例
新建一个测试用例,命名为“百度翻译”。添加测试步骤“Is Translate”
此时看到所编辑行的两个单元格变为了红色,表示该关键字需要两个必填变量,对应我们的脚本中的两个参数。
添加变量,英文输入“Test”,对应检验结果为“测验”
4.运行测试
运行测试,此时,测试不通过
检查错误信息,错误信息为
Starting test: 百度搜索测试.兼容性测试.百度翻译 20150824 16:59:37.014 : FAIL : UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 490: ordinal not in range(128) Ending test: 百度搜索测试.兼容性测试.百度翻译
表示是我们的TestCase中的中文字符编码格式错误,此时需要调整以下RobotFrame Work在调用脚本进行运行时的系统编码格式。
5.增加中文支持
向脚本中添加代码,设置系统默认编码为utf8
#添加中文支持 reload(sys) sys.setdefaultencoding('utf8')
6.再次执行
再次执行测试,测试通过,结果为Pass,表示被打开的页面中出现了我们所需要的“测验”字符。(作为简单示例,此时暂不考虑其它搜索结果中的输出问题,如果要进行严格的测试,应该对搜索后返回的html做解析,先定位到baidu翻译引擎的div位置,再对位置中的翻译结果做检查。)
总结:
本篇文章中,我们对如何建立自定义Library进行自动化测试,以及如何解决RobotFrame Work 自定义 Library 中的中文字符编码问题进行了介绍。通过编写自己的Library,可以更贴合自己的业务逻辑,更加符合实际使用情况。
下一篇中,我们将对如何使用RobotFrame Work连接数据库进行介绍。
Robot Framework 教程 (4) - 自定义Library的更多相关文章
- Robot Framework 教程 (3) - Resource及关键字 的使用
From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化 ...
- Robot FrameWork 教程链接
1. Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2. Robot Framework ...
- Robot Framework 教程 (5) - 连接Oracel数据库
Robot Framework 提供了多种Library.其中Database Library可用来连接操作数据库. 1.安装Database Library 打开Robot Framework官网, ...
- Robot Framework 教程 (6) - 使用条件表达式
本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...
- Robot Framework 教程 (2) - 页面元素定位
上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...
- Robot Framework 教程 (1) - 环境配置及简单网站兼容性测试
0.Robot Framework 简介 Robot Framework 是一个通用的自动化测试框架,主要用于“验收测试”和“验收测试驱动开发(ATDD)” (会其它文章中会详细介绍ATDD).它使用 ...
- Robot Framework 教程 (7) - 使用For循环
在自动化测试过程中,使用For循环来对某个动作进行重复操作是很普遍的行为.在Robot Framework中,各种测试库中均提供了多种方式的For循环结构,在其中覆盖了大部分类型的循环类型.而Robo ...
- robot framework教程-------虫师
http://www.testclass.net/2017/09/28/happy-holidays/
- Robot Framework 入门教程总结
Robot Framework 作为一款通用测试框架,可加载多种测试库.驱动多种测试工具,并可对各种自定义脚本进行集成.对于Robot Framework,我准备将其分为 入门--Robot Fram ...
随机推荐
- Catalan&Stirling数
Catalan&Stirling数 Tags:数学 作业部落 评论地址 Catalan数 \(1,1,2,5,14,42,132,429,1430,4862,16796,58786...\) ...
- Deep Learning综述[上]
Deep-Learning-Papers-Reading-Roadmap: [1] LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Dee ...
- 33 -jQuery 属性操作,文档操作(未完成)
- Distributed2:SQL Server 创建分布式数据库
分布式数据库的优势是将IO分散在不同的Physical Disk上,每次查询都由多台Server的CPU,I/O共同负载,通过各节点并行处理数据来提高性能,劣势是消耗大量的网络带宽资源,管理难度大.在 ...
- 【JUC源码解析】Phaser
简介 Phaser,阶段器,可作为一个可复用的同步屏障,与CyclicBarrier和CountDownLatch类似,但更强大. 全览图 如上图所示,phaser,支持phaser树(图中,简化为p ...
- 推荐11个实用Python库
1.delorea 非常酷的日期/时间库 from delorean import Delorean EST = "US/Eastern"d = Delorean(timezone ...
- 百度ueditor 文本框
所需配置(qui框架) <!--ueEditor编辑器start--> <script> window.UEDITOR_HOME_URL = ctx+"/stati ...
- 使用Fiddler模拟客户端http响应【转】
转自:使用Fiddler模拟客户端http响应 在客户端开发中,常常需要对一些特殊情况做处理,比如404.503等,又比如服务返回错误数据等.而测试这些情况会比较麻烦,往往都是找开发人员配合修改代码, ...
- Windows7 jmeter3.1安装(咋个安装?)
这是一个比较详细的安装教程0.0,不懂可以私我,有错也可以私我 1.0 首先我们得有jdk,我选择的是1.8版本的jdk, QQ群:550654190,(进群答案:李熠)群文件里有. 进去后下载 ...
- 简单的redis工具类
import java.util.Arrays; import java.util.List;import java.util.Set; import org.apache.commons.lang. ...