zoukankan      html  css  js  c++  java
  • python for selenium 数据驱动测试

     1 # -*- coding:utf-8 -*-
     2 """
     3 数据驱动测试,从 csv 文件中读取数据
     4 """
     5 from selenium import webdriver
     6 import csv, sys
     7 
     8 
     9 test_executed = 0
    10 test_passed = 0
    11 test_failed = 0
    12 test_status = True
    13 
    14 
    15 try:
    16     driver = webdriver.Firefox()
    17     driver.get('C:BMICalculator.html')
    18     
    19     datafile = open(r'c:data.csv', 'rb')
    20     reader = csv.reader(datafile)
    21     
    22     test_executed = 0
    23     
    24     for row in reader:
    25         test_executed += 1
    26         print 'Test' + str(test_executed)
    27         
    28         heightField = driver.find_element_by_name('heightCMS')
    29         heightField.clear()
    30         heightField.send_keys(row[0])
    31         
    32         weightField = driver.find_element_by_name('weightKg')
    33         weightField.clear()
    34         weightField.send_keys(row[1])
    35         
    36         calculateButton = driver.find_element_by_id('Calculate')
    37         calculateButton.click()
    38         
    39         bmiLabel = driver.find_element_by_name('bmi')
    40         bmiCategoryLabel = driver.find_element_by_name('bmi_category')
    41         
    42         if bmiLabel.get_attribute('value') == row[2]:
    43             print "PASS, expected value for BMI <" + row[2] + "> actual <" + bmiLabel.get_attribute('value') + ">"
    44         else:
    45             print "FAIL, expected value for BMI <" + row[2] + "> actual <" + bmiLabel.get_attribute('value') + ">"
    46             test_status = False
    47             
    48         if bmiCategoryLabel.get_attribute('value') == row[3]:
    49             print "PASS, expected value for BMI Category <" + row[3] + "> actual <" + bmiCategoryLabel.get_attribute('value') + ">"
    50         else:
    51             print "Fail, expected value for BMI Category <" + row[3] + "> actual <" + bmiCategoryLabel.get_attribute('value') + ">"
    52             test_status = False
    53             
    54         if test_status == True:
    55             test_passed = test_passed + 1
    56         else:
    57             test_failed = test_failed + 1
    58             
    59 except :
    60     print "Unexpected error: ", sys.exc_info()[0]
    61     raise
    62 
    63 finally:
    64     print "---------------------------------------------------------------"
    65     print "Total (" + str(test_executed) + ") Tests Executed"
    66     print "Total (" + str(test_passed) + ") Tests Passed"
    67     print "Total (" + str(test_failed ) + ") Tests Failed"
    68     driver.close()
    69     datafile.close()
  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/Roger1227/p/3192116.html
Copyright © 2011-2022 走看看