|
一,线性[url=]测试[/url]
1.概念:
通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。
(操作,重复操作,数据)都混合在一起。
2.优点:
每个脚本相对独立,且不产生其他依赖和调用。
3.缺点:
开发成本高,用例之间存在重复的操作。比如重复的用户登录和退出。
维护成本高,由于重复的操作,当重复的操作发生改变时,则需要逐一进行脚本的修改。
4.线性测试实例
用户登录
以下的用户名密码到时候自己去申请,就不将笔者的用户密码贴出来了。
# coding=utf-8'''Created on 2016-7-20@author: JenniferProject:简单元素操作登录126邮箱,元素的clear(),send_keys(),click()操作在定位的时候发现有些元素定位不到,最后发现有iframe,frame中实际上是嵌入了另一个页面。如果iframe有name或id的话,直接使用switch_to_frame("name值")或switch_to_frame("id值"),这是最理想的方法,也是最简单好用的方法。'''from [url=]selenium[/url] import webdriverimport timedriver=webdriver.Firefox()driver.get(r'http://www.126.com/')
#字符串加r,防止转义。time.sleep(3)print '开始登录邮箱'try:
assert '126' in driver.title
#title是变量,不能title()except AssertionError:
print "error:网址输入不正确"else:
print "[url=]记录[/url]日志:网址输入正确"#
driver.switch_to_frame('x-URS-iframe')
#跳转到iframe框架
driver.switch_to.frame('x-URS-iframe')
#同上面语句一样,跳转到iframe框架
username=driver.find_element_by_name('email')
username.clear()
username.send_keys('Jennifer···')
time.sleep(0.1)
userpasswd=driver.find_element_by_name('password')
userpasswd.clear()
userpasswd.send_keys('·····')
time.sleep(0.1)
loginbt=driver.find_element_by_id('dologin')
loginbt.click()
time.sleep(3)
try:
assert '网易邮箱' in driver.title
except AssertionError:
print '邮箱登录失败'
else:
print '邮箱登录成功'
finally:
#操作:收信,写信等操作,暂不写例子了
driver.quit()
print '测试结束'
二,模块化驱动测试
1.概念:
将重复的操作独立成功共模块,当用例执行过程中需要用到这一模块操作时则被调用。
操作+(重复操作,数据)混合在一起。
2.优点:
由于最大限度消除了重复,从而提高了开发效率和提高[url=]测试用例[/url]的可维护性。
3.缺点:
虽然模块化的步骤相同,但是测试数据不同。比如说重复的登录模块,如果登录用户不同,依旧要重复编写登录脚本。
4.实例
公共模块:对登陆和退出进行模块化封装
以下的用户名密码到时候自己去申请,就不将笔者的用户密码贴出来了。
# coding=utf-8'''Created on 2016-7-27@author: JenniferProject:模块化驱动测试实例,将重复的登录脚本放在单独的脚本中供其他用例调用'''import timeclass Login():
def user_login(self,driver):
username=driver.find_element_by_name('email')
username.clear()
username.send_keys('username')
time.sleep(0.1)
userpasswd=driver.find_element_by_name('password')
userpasswd.clear()
userpasswd.send_keys('password')
time.sleep(0.1)
loginbt=driver.find_element_by_id('dologin')
loginbt.click()
time.sleep(3)
def user_logout(self,driver):
driver.find_element_by_link_text(u'退出').click()
driver.quit()
写信用例:以下代码用了各种定位方法,值得学习,后续再重新对这部分进行总结。
|
|