学习python自动化测试试,是学java好还是python好

后使用快捷导航没有帐号?
查看: 415|回复: 4
要学自动化测试,有没有好的java基础书籍推荐一下
注册会员, 积分 151, 距离下一级还需 49 积分
论坛徽章:6
本人只熟悉C语言,了解python,但是没怎么接触过,要学习自动化测试,求推荐一本java的基础教程,谢谢啦
注册会员, 积分 142, 距离下一级还需 58 积分
论坛徽章:2
建议从网上找一些JAVA基础视频教程
注册会员, 积分 142, 距离下一级还需 58 积分
论坛徽章:2
个人觉得没有JAVA基础学习Selenium2还是挺难的。
注册会员, 积分 142, 距离下一级还需 58 积分
论坛徽章:2
就像老师讲的,Selenium2用到最后就像一个开发人员在写代码了。
金牌会员, 积分 1173, 距离下一级还需 1827 积分
论坛徽章:14
java到处都需要啊,。。。。。。。。。用Python开发自动化测试脚本 - Python - 伯乐在线
& 用Python开发自动化测试脚本
通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式一次又一次的重复将会非常的枯燥乏味。
而我们所希望的,是一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告。
Python的世界有一个开源框架Splinter,可以非常棒的模拟浏览器的行为(从某种意义上也可以说是人的访问点击行为)。Splinter提供了丰富的API,可以获取页面的信息,以判断当前的行为所产生的结果
最简单的例子
browser = Browser(‘firefox’) 模拟一个浏览器
browser.visit(‘/login/login.htm’) 访问指定URL
browser.fill(‘TPL_username’,’test_04’) 填充表单用户名
browser.fill(‘TPL_password’,’taobao1234’) 填充表单密码
browser.find_by_value(‘登录’).first.click()表单提交
运行代码,splinter会打开你所指定的浏览器然后进行各种操作,像放电影一样的根据你的代码逻辑在你面前一步一步执行。
举个例子,现在我们要回归登录功能,以前我们从未开发过这样的脚本,所以现在我们首先要开发一个用于模拟登录行为的脚本。
如下面代码(其实是非常简短的一个代码):
#!/user/bin/python
# -*- coding: utf8 -*-
import sys
from splinter.browser import Browser
#####################################################
# global instance
CLOASE_AFTER_TEST = False
GBK = "gbk"
UTF8 = "utf8"
#####################################################
# encoding for console
reload(sys)
sys.setdefaultencoding(UTF8)
#####################################################
# small method
encoding = lambda x:x.encode('gbk')
#####################################################
def output(x):
encode and print
print encoding(x)
def resultMsg(x):
judge result and print, x : True or False
if x == True:
print 'pass'
print '[X]not pass'
print '--------------------------'
def checkresult(x):
check result message, x : the error message u want
resultMsg(browser.is_text_present(x))
def testLogin(desc, username, password, result):
fill login form message and submit, check result message and print
output(desc)
browser.fill('TPL_username',username.decode(UTF8))
browser.fill('TPL_password',password.decode(UTF8))
browser.find_by_value('登录').first.click()
checkresult(result)
__testUrl = '/login/login.htm?tpl_redirect_url=http%3A%2F%%2F'
# chrome driver : /p/selenium/wiki/ChromeDriver
# already support firefox
browser = Browser()
browser.visit(__testUrl)
output("测试页面:"+browser.title)
# test login
testLogin('测试未输入用户名','','','请输入会员名')
testLogin('测试未输入密码','qd_test_001','','请输入密码')
testLogin('测试帐户不存在','这是一个不存在的名字哦','xxxxxxx','该账户名不存在')
testLogin('测试成功登录','qd_test_001','taobao1234','继续登录前操作')
# test find password
output("测试[找回密码]链接")
browser.visit(__testUrl)
backPasswordLink = browser.find_link_by_text('取回密码')
if 1 == len(backPasswordLink):
backPasswordLink.first.click()
ru = re.pile(".*(reg/gp.htm).*", re.IGNORECASE), browser.url)
if ru is not None:
checkresult('找回密码')
output("测试找回密码链接失败")
except Exception,x:
if CLOASE_AFTER_TEST:
browser.quit()
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
#!/user/bin/python# -*- coding: utf8 -*-&import sysimport refrom splinter.browser import Browser&###################################################### global instanceCLOASE_AFTER_TEST = FalseGBK = "gbk"UTF8 = "utf8"&###################################################### encoding for consolereload(sys)sys.setdefaultencoding(UTF8)&###################################################### small methodencoding = lambda x:x.encode('gbk')&#####################################################def output(x):&&&&"""&&&&&&&&encode and print&&&&"""&&&&print encoding(x)&def resultMsg(x):&&&&"""&&&&&&&&judge result and print, x : True or False&&&&"""&&&&if x == True:&&&&&&&&print 'pass'&&&&else:&&&&&&&&print '[X]not pass'&&&&print '--------------------------'&def checkresult(x):&&&&"""&&&&&&&&check result message, x : the error message u want&&&&"""&&&&resultMsg(browser.is_text_present(x))&def testLogin(desc, username, password, result):&&&&"""&&&&&&&&fill login form message and submit, check result message and print&&&&"""&&&&output(desc)&&&&browser.fill('TPL_username',username.decode(UTF8))&&&&browser.fill('TPL_password',password.decode(UTF8))&&&&browser.find_by_value('登录').first.click()&&&&checkresult(result)&__testUrl = '/login/login.htm?tpl_redirect_url=http%3A%2F%%2F'&# chrome driver : /p/selenium/wiki/ChromeDriver# already support firefoxbrowser = Browser()browser.visit(__testUrl)&output("测试页面:"+browser.title)&try:&&&&# test login&&&&testLogin('测试未输入用户名','','','请输入会员名')&&&&testLogin('测试未输入密码','qd_test_001','','请输入密码')&&&&testLogin('测试帐户不存在','这是一个不存在的名字哦','xxxxxxx','该账户名不存在')&&&&testLogin('测试成功登录','qd_test_001','taobao1234','继续登录前操作')&&&&&# test find password&&&&output("测试[找回密码]链接")&&&&browser.visit(__testUrl)&&&&backPasswordLink = browser.find_link_by_text('取回密码')&&&&if 1 == len(backPasswordLink):&&&&&&&&backPasswordLink.first.click()&&&&&&&&ru = re.findall(re.compile(".*(reg/gp.htm).*", re.IGNORECASE), browser.url)&&&&&&&&if ru is not None:&&&&&&&&&&&&checkresult('找回密码')&&&&&&&&else:&&&&&&&&&&&&output("测试找回密码链接失败")&except Exception,x:&&&&print x&if CLOASE_AFTER_TEST:&&&&browser.quit()
从这几句我们可以看到,我们大致要测试的几种登录情况:
testLogin(‘测试未输入用户名’,”,”,’请输入会员名’)
testLogin(‘测试未输入密码’,’qd_test_001′,”,’请输入密码’)
testLogin(‘测试帐户不存在’,’这是一个不存在的名字哦’,’xxxxxxx’,’该账户名不存在’)
testLogin(‘测试成功登录’,’qd_test_001′,’taobao;,’继续登录前操作’)
跑一下脚本,可以得到结果:
————————————————————————–
测试页面:用户登录 – 手机淘宝网
测试未输入用户名
————————–
测试未输入密码
————————–
测试帐户不存在
————————–
测试成功登录
————————–
测试[找回密码]链接
————————————————————————-
这里的输出是我们代码控制的,你也可以将结果保存到文件中发送到某个监控系统或者邮箱。
首次开发完自动化回归脚本后,以后的功能调整,我们就不再需要人肉去操作,跑一下脚本,就可以得到结果。
Splinter 快速介绍
官方网站:/
官方介绍:
Splinter is an open source tool for testingweb applications using Python. It lets you automate browser actions, such asvisiting URLs and interacting with their items
可以模拟浏览器行为,访问指定的URL,并且可以指定不同的浏览器类型。比如firefox或者chrome等。不同的浏览器只要在本地安装对应的驱动,就可以在代码中通过名称指定来访问。
支持cookie操作,可以很方便的添加和删除cookie;
支持模拟鼠标的动作,比如滑动到某个按钮上,焦点离开某个按钮等等,对于带有动态提示的页面,如搜索引擎的关键字输入框的动态提示,可以非常方便的测试。
支持模拟键盘的输入操作,对input等控件的输入可以模拟用户的type过程。
支持直接运行js或者调用页面的js。
支持模拟上传文件。
对radio和checkbox有专门的api支持,非常方便;
支持快速的获取页面的元素或者判断是否存在文本,用于开发判断页面提示信息是否准确非常方便。
最重要的,splinter的API非常简单,配合官方的文档学习成本几乎是0,当然你得懂一些python语法。如果你比较了解js和css,你可能会像喜欢jquery一样喜欢它;
Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。
然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。
可能感兴趣的话题
没有尝试后这种自动化测试,只是写些算法的代码而已!
o 245 回复
关于 Python 频道
Python频道分享 Python 开发技术、相关的行业动态。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线拒绝访问 | www.1398.org | 百度云加速
请打开cookies.
此网站 (www.1398.org) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(391d802b-ua98).
重新安装浏览器,或使用别的浏览器想搞数据挖掘分析,应该学习java还是python? - 简书
想搞数据挖掘分析,应该学习java还是python?
想搞数据挖掘分析,应该学习java还是python?可以参考这个:会发现,数据挖掘最常用的语言是R语言和Pyhton。如果专精于做数据挖掘的话,两个都可以,如果还有做其他的话,比如网络爬虫或将研究转化为生产的话,推荐学Python。在数据挖掘领域 ,python对java有很大的优势。除了语言灵活简单之外,数据挖掘相关的库丰富强大也是一个非常重要的原因。而且现在很多数据挖掘数据的工具,都会提供python接口。大公司的数据挖掘,很多也用的是python。除了数据挖掘分析之外,python在其他领域 ,例如爬虫 ,后台等地方,也有很多强大的轮子可以使用,几乎是万能语言。Java写分布式的实现,如mr,graph,spark(scala),python写udf,数据处理,单机版,gpu版,脚本。
Simple is happiness.您当前的位置 :
零基础应该选择学习Java、PHP还是Python?
扫码阅读手机版
  零基础应该选择学习Java、PHP还是Python?
  对于许多要毕业的大学生、想转行找工作的人来说,零基础选择学习哪项是很纠结的,不过,今天智能社小编来帮你解答一下心里的小困惑。
  在这三门之中,还是建议零基础的学员们学习Java,Python也很好,但是为什么首推Java?对于零基础学习的人来说,最重要的是找到工作。目前来看,对于Java人才的需求是很大的,找工作是最容易的。对于跨行业的人来说,最困难的其实是第一步,那就是如何进入这个行业。如果你没能进来,那么一切努力也都会白费。
  所以,我们首先还是要学好Java,那么哪里有靠谱的培训机构呢?智能社具有深度的课程内容,直切核心,剖析本质。在讲解只是的同时还会帮助大家掌握思考问题的方法,并且我们具有一线大型互联网公司经验的讲师,亲自授课,特别要说的是我们智能社的“大咖”—Blue前淘宝网高级工程师,具有十年的开发经验,无论是线上制作的Java视频课程,还是线下的面对面授课都获得了学员们的无数好评,视频课程也在业界广为流传,口碑好,才是真的好!
  详情请咨询:
下载前沿客户端关注更多精彩
热点新闻排行榜
| 违法和不良信息举报电话:022- | 举报邮箱:jubao@ |
(C) 2000-.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights
本网站由天津北方网版权所有}

我要回帖

更多关于 python自动化测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信