zoukankan      html  css  js  c++  java
  • 5.自动化测试模型

    1.概述

    自动化测试模型可以看作自动化测试框架与工具设计的思想。自动化测试不仅仅是单纯写写脚本运行就可以了,还需要考虑到如何使脚本运行效率提高,代码复用、参数化等问题。自动化测试模型分为四大类:线性模型,模块化驱动测试、数据驱动、关键词驱动。

    线性模型

    线性脚本中每个脚本都相互独立,且不会产生其他依赖与调用,其实就是简单模拟用户某个操作流程的脚本。

     

    from selenium import webdriver
    from time import sleep
    url=""
    driver = webdriver.Firefox()
    driver.get(url)
    sleep(3)
    
    driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[1]").send_keys("")
    driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[2]").send_keys("")
    driver.find_element_by_class_name("loinp").find_element_by_xpath("//option[@value='1']").click()
    driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[3]").click()
    print(driver.get_cookies())
    title=driver.title
    print(title)
    
    driver.find_element_by_link_text("退出登录").click()

     

    模块化驱动测试

    线性模型虽然每个用例都可以拿出来独立运行,但是用例之间重复代码很多,开发、维护成本高。其实把重复的操作代码封装为独立的公共模块,当用例执行时需要用到这部分,直接调用即可,这就是模块驱动的方式。比如登录系统、退出登录、截图函数等等。

     

    from selenium import webdriver
    from time import sleep
    class login():
        def user_login(self,driver):
            driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[1]").send_keys("")
            driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[2]").send_keys("")
            driver.find_element_by_class_name("loinp").find_element_by_xpath("//option[@value='1']").click()
            driver.find_element_by_xpath(".//*[@id='loginForm']/ul/input[3]").click()
            print(driver.get_cookies())
            title = driver.title
            print(title)
        def user_logout(self,driver):
            driver.find_element_by_link_text("退出登录").click()
            sleep(2)
            driver.close()
    if __name__=='__main__':
        url="/"
        driver = webdriver.Firefox()
        driver.get(url)
        driver.implicitly_wait(10)
        login().user_login(driver)
        login().user_logout(driver)

     

    调用登录退出模块

    数据驱动测试

    模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同数据的用例时,模块驱动的方式就不很适合了。 数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。 装载数据的方式可以是列表、字典或是外部文件(txtcsvxmlexcel),目的就是实现数据和脚本的分离。

     

     

    关键字驱动测试

     

    通过关键字的改变引起测试结果的改变叫关键字驱动测试。 selenium IDE也是一种传统的关键字驱动的自动化工具,Robot Framework 是一个功能更强大的关键字驱动测试框架

     

     

     

  • 相关阅读:
    java中 Hex(十六进制)和byte[]相互转换
    byte[]和File相互转换
    Stringboot MultiPartFile 转 File
    mysql8.0+运行报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. 解决办法
    idea激活
    mysql8安装成功过后navicat连接失败
    AJAX的使用
    单文件上传和多文件上传实例
    监听器的使用
    SQL分页技术
  • 原文地址:https://www.cnblogs.com/huaerye/p/9360404.html
Copyright © 2011-2022 走看看