数据驱动_txt
在 UI 级别的自动化测试中,也可以把测试的数据存储在 txt 的记事本中,对记事本一般的操作是读取文件内容,往里面写内容,在文件操作模式中主要会
有这么几类,r 为只读属性,r+是读写属性,w 是只写属性,w+是读写属性,a+是读写方式。下面就通过一个案例,实现往记事本中写入文件内容再读取出来,
见实现的代码:
源码:
def txt():
'''
对记事本的操作(无论是写文件内容和读文件内容都需要打开文件和关闭文件)
f = open('file.txt','w')是不管是否当前路径下存在file.txt,都会创建一个文件file.txt,
文件打开后切记要关闭。上面的函数txt执行后首先在file.txt文件中写入'小超你好!'内容,读取后也是该文件内容。
'''
f = open('file.txt','w')
f.write('小超,你好!')
f.close()
f = open('file.txt','r')
print(f.read())
f.close()
def txt():
'''
对记事本的操作(不需要单独关闭文件,它内部会进行处理)
'''
with open('file.txt','w')as f:
f.write('小超,你好!')
with open('file.txt','r')as f:
f.read()
实例:

源码:
import unittest
from selenium import webdriver
def getTxtData(index):
with open('sina.txt','r')as f:
d = f.readlines()
return d[index]
class SinaLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get('http://mail.sina.com.cn/')
def tearDown(self):
self.driver.quit()
def longin(self,username,password):
self.driver.find_element_by_id('freename').send_keys(username)
self.driver.find_element_by_id('freepassword').send_keys(password)
self.driver.find_element_by_link_text('登陆').click()
def divTest(self):
divTest = self.driver.find_element_by_xpath(
'/html/body/div[1]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]')
return (divTest.text).enconde('utf-8')
def test_username_password_null(self):
'''验证:用户名和密码都为空的错误提示信息'''
self.longin(getTxtData(0),getTxtData(0))
self.assertEqual(self.divTest(),getTxtData(2))
def test_sina_password_null(self):
'''验证:测试用户名为空密码不为空的错误提示信息'''
self.longin(getTxtData(0),getTxtData(1))
self.assertEqual(self.divTest(),getTxtData(2))
def test_sina_username_format(self):
'''验证:测试用户名邮箱格式不正确的错误提示信息'''
self.longin(getTxtData(1),getTxtData(1))
self.assertEqual(self.divTest(),getTxtData(4))
if __name__ == '__main__':
unittest.main(verbosity=2)
注解:在如上的代码中把登录单独写成了 login 方法,把返回的错误提示信息放在 divText 方 法中,这样在三个测试用例中只可用很少的代码,直接调用 login 方法和 divText 方法即可。

浙公网安备 33010602011771号