zoukankan      html  css  js  c++  java
  • selenium基础(参数化脚本)

    参数化脚本

    什么是参数化

    • 参数化就是用包含多组数据的参数列表,使之替换脚本中的响应常量值,这样,在脚本运行的时候,就会使用参数表中的数据来代替脚本中的常量值
    • 由于参数表中包含了多组数据,所以执行用例时,会多次自动运行脚本,每次使用不同组的数据来代替脚本,这个运行次数就是参数表中的记录数,每执行一次测试,称为一个反复

    三种参数化的方法

    • 使用列表进行参数化
    • 读取TXT文件中的数据,读取文本有三种方式
      1. read():读取整个文件
      2. readline():读取一行数据
      3. readlines():读取所有行的数据
      4. user_file=open('test_data.txt','r')#以只读的方式打开test_data.txt文件,可标注文件路径或当文件和运行脚本在同一文件下时标注文件名称
        lines=user_file.readlines()#读取文件中的所有行,以数组的形式进行保存
        user_file.close()#关闭文件
        
        #遍历在文件中取出的数组
        for line in lines:
            username=line.split(',')[0]#以逗号作为分隔符,取出数组中的第一个元素
            password=line.split(','[1])#以逗号作为分隔符,取出同一数组中的第二个元素
            print(username.password)
    • 获取CSV文件中的数据
    • import csv#引入CSV包
      data=csv.reader(open('D:\test\login.csv','r'))#读取CSV文件并以只读的方式打开CSV文件
      
      for line in data:
          print(line[0], line[1])#line[0]即读取line中的第一列元素 

    例子:使用参数化的方式实现在百度页面中搜索不同的关键字

    from selenium import webdriver
    import time
    keys=['selenium','自动化测试','性能测试','接口测试']
    driver=webdriver.Firefox()
    driver.get('https://www.baidu.com')
    
    for text in keys:
        driver.find_element_by_xpath('//input[@id="kw"]').clear()
        driver.find_element_by_xpath('//input[@id="kw"]').send_keys(text)
        driver.find_element_by_id('su').click()
        print(driver.title)
        time.sleep(2)
    driver.quit() 

     例子:以百度登录功能为例,使用读取txt文本的方式进行参数化

    from selenium import webdriver
    import time
    
    file_txt=open('D:\test\login.txt','r')
    lines=file_txt.readlines()
    file_txt.close()
    
    for line in lines:
        username=line.split(',')[0]
        password=line.split(',')[1]
        print(username,password)
        driver=webdriver.Firefox()
        driver.get('http://www.baidu.com')
        driver.find_element_by_link_text('登录').click()
        time.sleep(2)
        driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
        driver.find_element_by_name('userName').send_keys(username)
        driver.find_element_by_name('password').send_keys(password)
        driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
        driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
        time.sleep(2)
        driver.quit()

     例子:以百度登录功能为例,使用读取CSV文件的方式进行参数化

    from selenium import webdriver
    import time
    import csv#引入CSV包
    data=csv.reader(open('D:\test\login.csv','r'))#读取CSV文件并以只读的方式打开CSV文件
    
    for line in data:
        print(line[0], line[1])#line[0]即读取line中的第一列元素
        driver=webdriver.Firefox()
        driver.get('http://www.baidu.com')
        driver.find_element_by_link_text('登录').click()
        time.sleep(2)
        driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
        driver.find_element_by_name('userName').send_keys(line[0])#引用CSV文件中第一列元素
        driver.find_element_by_name('password').send_keys(line[1])#引用CSV文件中第一列元素
        driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
        driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
        time.sleep(2)
        driver.quit()
  • 相关阅读:
    UML用例图
    directX--大约CSource和CSourceStream (谁在叫fillbuffer)
    【云】如何建立微信在全国卖场地图?
    C++ Primer 学习笔记_38_STL实践与分析(12)--集成的应用程序容器:文本查询程序
    Android使用SVG矢量创建很酷的动态效率!
    观察者模式(observer行为)c#简单的例子
    Oracle MySQL
    tomcat 跨域
    Jms Spring
    Ehcache使用
  • 原文地址:https://www.cnblogs.com/jingdenghuakai/p/11703712.html
Copyright © 2011-2022 走看看