zoukankan      html  css  js  c++  java
  • python实例编写(5)--异常处理,截图,用例设计

    一.python的异常处理

    异常抛出处理机制:

    1.若在运行时发生异常,解释器会查找相应的处理语句(handler)

    2.若在当前函数无法找到,就将异常传给上层的调用函数,看是否能处理

    3.如果在最外层(全局“main")中还是无法找到时,解释器退出,并打印出 traceback让用户找出错原因

    try...except   异常捕捉,用except接收了这个IOError,pass代表实现了相应实现,什么也不做

    #coding=utf-8

    # except接收错误,不报错,pass代表实现了相应实现,什么也不做
    try: open("ddd.txt","r") except IOError: pass #msg用来打印except接收的NameError的错误,此时会打印出:name is not defined! try: print aa except NameError,msg: print msg #指定AssertionError的抛出错误为msg,如果出错,则报出:”num is not 10 !" try: num=input("inout a num:") assert (num==10),"num is not 10" except AssertionError,msg: print msg print ("Sadly,num not 10!!")

    try...finally 无论错误是不是发生,这些代码必须运行,比如:文件关闭,释放锁,把数据库连接返回给连接池

    import time
    
    try:
        f=file("data.txt")
        while True:
            line=f.readline()
            if len(line)==0:
                break
            time.sleep(2)
            print line
    finally:
        f.close()
        print 'Cleaning up...closed the file'

    正常情况下运行结果如下:

    >>> 
    你说的啥
    
    selenium
    
    go die
    
    WFU
    
    appium
    Cleaning up...closed the file

    在运行途中按 ctrl+C终止键,文件仍然执行finally下的语句:

    >>>
    你说的啥 selenium Cleaning up...closed the file Traceback (most recent call last): File
    "C:UsersDELLDesktop est.py", line 9, in <module> time.sleep(2) KeyboardInterrupt

     二.错误截图

    在异常抛出中使用 get_screenshot_as_file(“保存的截图路径”)即可得到异常截图

    # coding =utf-8
    from selenium import webdriver
    
    browser=webdriver.Chrome()
    browser.get("http://www.baidu.com")
    
    try:
        browser.find_element_by_id("kw1").sendkeys("selenium")
        browser.find_element_by_id("su").click()
    except:
        browser.get_screenshot_as_file("D:/error.png")
        

    三.自动化测试用例设计

    自动化测试用例设计的原则:

    1.一个脚本是一个完整的场景,包括登录,退出和关闭。

    2.一个脚本只验证一个一个功能点,如登录功能脚本完毕后,验证发消息时虽然需要登录退出,但是只验证发消息这个功能点,不能太多

    3.尽量只做正向逻辑的验证,怎么可以正确走通怎么来,考虑太多逆向,一方面场景过多,另一方面验证性不强,一般手工多用逆向思维,而且由于多用于回归性测试,考虑正向就好

    4.脚本之间依赖性不能太强,要各自独立

    5.如果数据做了修改,要进行数据还原,例如:修改完密码后,需要把密码重新改回去,否则导致下次不能使用,可重用性太弱

    6.只对验证点进行验证,不要每个都验证

    自动化测试案例一般用表格记录

     重要的是验证点的设计,比如:用登录后的昵称验证是否登录成功,用文件的数量判断是否添加文件成功(不用恢复数据),用文件的数量判断是否删除成功(记得要恢复数据!!!)

    比如:对于公司的系统微信管理平台而言:

    登录:验证登录后的昵称

    添加文件:验证新插入的第一行第一列标题是否是新增的内容

    删除文件:验证删除后,下行的标题显示是否正确

    修改:修改后的内容显示是否正确

    查询:显示的内容数量是否正确

    由简到繁,逐步增加功能点,即使实现了部分的自动化,但是半自动化可以使更多的注意点到探索性测试和用户体验方面。

  • 相关阅读:
    static和final
    java面向对象白话解说
    方法
    数组
    JDK的安装和java程序的开发步骤以及环境变量配置
    VS2010 根据模型生成数据库 打开edmx.sql文件时 vs出现无响应的解决方案
    js简易写法
    .NET程序性能优化基本要领
    数据采集类
    ASP.NET MVC 3 配置EF自动生成模型
  • 原文地址:https://www.cnblogs.com/alwayswyy/p/5063250.html
Copyright © 2011-2022 走看看