请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 27|回复: 0

四种自动化测试模型实例及优缺点(一)

[复制链接]

3099

主题

3499

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12384
发表于 2022-8-4 17:00:07 | 显示全部楼层 |阅读模式
       一,线性[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()        


  写信用例:以下代码用了各种定位方法,值得学习,后续再重新对这部分进行总结。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-8-16 03:49 , Processed in 0.043370 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表