zoukankan      html  css  js  c++  java
  • python webdriver混合驱动测试框架(数据驱动+关键字驱动)

    混合驱动:把数据驱动、关键字驱动结合起来一起使用

    testdata.txt

    http://www.126.com
    http://www.sohu.com

    teststep.txt

    open||chrome
    visit||${url}
    sleep||3

    主程序脚本

    hybrid.py

    #encoding=utf-8
    import re
    from selenium import webdriver
    import time

    with open("teststep.txt") as fp:
    teststeps = fp.readlines()

    with open("testdata.txt") as fp:
    testdata = fp.readlines()

    driver = ""

    def open(browser_name):
    global driver
    if "ie" in browser_name:
    driver = webdriver.Ie(executable_path = "e:\IEDriverServer")
    elif "chrome" in browser_name:
    driver = webdriver.Chrome(executable_path = "e:\chromedriver")
    else:
    driver = webdriver.Firefox(executable_path = "e:\geckodriver")

    def visit(url):
    global driver
    driver.get(url)

    def click(xpath):
    try:
    driver.find_element_by_xpath(xpath).click()
    except:
    print("click fail!")
    raise

    def sleep(times):
    time.sleep(int(times))

    for data in testdata:
    print(data)
    for teststep in teststeps:
    action = teststep.split("||")[0].strip()
    value= teststep.split("||")[1].strip()
    if re.search(r"${w+}",value):
    value=re.sub(r"${w+}",data.strip(),value)
    try:
    command = "%s("%s")" %(action,value)
    exec(command)
    except:
    print("执行",command,"有异常")

    driver.quit()
    print ("DONE!")


  • 相关阅读:
    Oracle数据库备份与恢复的三种方法
    mybatis内置类型
    mybatis中#{}和${}的区别
    Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
    java web简单权限管理设计
    Flask总结篇
    Django总结篇
    API总结
    实战小练习
    数据操作
  • 原文地址:https://www.cnblogs.com/ff-gaofeng/p/12670414.html
Copyright © 2011-2022 走看看