一、实践准备
在 UI 自动化测试中,也可以把测试的数据数据存储在后缀为 txt 的记事本文件中,对记事本的操作一般包含读写文件和写入文件。
其中,r 为只读属性,r+ 是读写属性,w 是只写属性,w+ 是读写属性,a+ 是读写方式。
下面实现向记事本中写入文本内容再读出来,实现代码如下:
def txt(): '''对记事本操作''' f = open('file1.txt','w') f.write('记事本') f.close() f = open('file1.txt','r') print(f.read()) f.close()#文件打开后记得关闭 txt()
f = open('file1.txt','w') 表示不管当前路径下是否存在 file1.txt,都会创建一个记事本文件,文件打开后切记要关闭。
可以通过 with 的方式实现系统内部的文件关闭处理而不需要专门关闭文件,实现代码如下:
def txt(): '''对记事本的操作''' with open('file2.txt','w') as f: f.write('第二个记事本') with open('file2.txt','r') as f: print(f.read()) txt()
二、实践
1、以新浪登录页面为例,记事本 sina.txt 文件内容如下(第一行是空的):
admin 请输入邮箱名 您输入的邮箱名格式不正确 admin@sina.com 登录名或密码错误 请输入密码
2、实现脚本如下:
__author__ = "XXX" import unittest from selenium import webdriver import os import time as t def getTxtData(index): with open(os.path.join(os.path.dirname(__file__),'sina.txt'),'r',encoding='utf-8') as f: d = f.readlines() return d[index] class SinaLogin(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get('http://mail.sina.com.cn/') self.driver.implicitly_wait(30) def tearDown(self): t.sleep(3) self.driver.quit() def login(self,username,password): '''验证:测试新浪邮箱登录N中情况''' 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(u'登录').click() def divText(self): divText = 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]') # 在freeError-span[1]里,根据情况输入情况变化的 return (divText.text).encode('utf-8') def divText2(self): divText = self.driver.find_element_by_xpath('/html/body/div[1]/div/div[2]/' 'div/div/div[4]/div[1]/div[1]/div[1]/span[2]') # 在freeError-apan[2]里,根据情况输入情况变化的 return (divText.text).encode('utf-8') def test_username_password_null(self): '''验证:测试用户名和密码都为空的错误提示信息''' # 都为空,提示:请输入邮箱名 self.login(getTxtData(0),getTxtData(0)) self.assertTrue(self.divText(),getTxtData(2)) def test_sina_password_null(self): '''验证:测试用户为空密码不为空的错误提示信息''' # 用户名:空,密码:admin,提示:请输入邮箱名 self.login(getTxtData(0), getTxtData(1)) self.assertTrue(self.divText(), getTxtData(2)) def test_sina_username_format(self): '''验证:测试用户邮箱格式不正确的错误提示信息''' # 用户名:admin@sina.com,密码:空,提示:请输入密码 self.login(getTxtData(4), getTxtData(0)) self.assertTrue(self.divText2(), getTxtData(6)) if __name__ == '__main__': unittest.main(verbosity=2)
以上,sina.txt 文件就在当前目录下,三个测试用例不分先后执行的。效果如下:
谢谢查看!
2019-11-17