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()
原文地址:https://www.cnblogs.com/jingdenghuakai/p/11703712.html