zoukankan      html  css  js  c++  java
  • Selenium数据驱动测试模型和实例

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

    代码实现如下:(文章代码url地址为内部地址,我隐藏掉了,你们可以换成其他地址哦)

    # #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time : 2020/8/13 13:46
    # @Author : Gengwu
    # @FileName: LoginClass_Para.py
    # @Software: PyCharm
    
    from  selenium import  webdriver
    from  time import  sleep
    from selenium.webdriver.common.action_chains import ActionChains
    
    class Login(): #定义一个类,类下面封装两个方法,一个登录,一个退出
        def user_login(self,driver,username,password):
            # 清除用户名的框,防止自动带入
            driver.find_element_by_id('account').clear()
            driver.find_element_by_id('account').send_keys(username)
    
            # 清除密码的框,防止自动带入
            driver.find_element_by_id('password').clear()
            driver.find_element_by_id('password').send_keys(password)
    
            # 点击登录按钮
            driver.find_element_by_css_selector(
                '#app > div > div > div.content > form > div.login-form-button-item > button').click()  # copy到selector
            sleep(2)
    
        def user_logout(self,driver):
            # 通过悬浮框定位到退出登录
            above = driver.find_element_by_class_name('author')
            ActionChains(driver).move_to_element(above).perform()
            driver.find_element_by_link_text('退出登录').click()
    
            sleep(2)
            # 点击弹框的确定按钮
            driver.find_element_by_css_selector('.ant-modal-body .ant-btn-primary').click()
            sleep(2)

    数据驱动调用——实现多个账户登录

    # #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time : 2020/8/13 14:11
    # @Author : Gengwu
    # @FileName: CallLogin_Para.py
    # @Software: PyCharm
    
    from selenium import webdriver
    from time import sleep
    from LoginClass_Para import *
    
    
    
    driver=webdriver.Chrome()
    driver.get('https://qa***.com/')
    driver.maximize_window()
    driver.implicitly_wait(10)
    sleep(3)
    
    Login().user_login(driver,'admin','admin')
    sleep(3)
    Login().user_logout(driver)
    
    Login().user_login(driver,'test','123456')
    sleep(3)
    Login().user_logout(driver)
    
    sleep(3)
    driver.quit()

    脚本放到同一个文件夹下,就可以试下调用。

    以上如果有问题欢迎随时沟通和交流。

    Best Regards!
    Make a little progress every day!
  • 相关阅读:
    C#,调用dll产生 "尝试读取或写入受保护的内存 。这通常指示其他内存已损坏。"的问题
    【调试输出】与【输出调试文本】的区别
    二、易语言 api 相关
    E4A 与JS交互事件无反应
    变量循环首、判断循环首、枚举循环首
    文本的操作:子文本替换、分割文本、取文本中间、取指定文本
    变量、&连接、函数与过程、按下某键
    淘宝客推广链接如何转换?
    淘宝客知道这几个ID,收入将会提高50%
    文件已经加入.gitignore但是vs并没有显示文件处于ignore状态
  • 原文地址:https://www.cnblogs.com/gengwulovestudy/p/13496649.html
Copyright © 2011-2022 走看看