zoukankan      html  css  js  c++  java
  • python-Txt实践

    一、实践准备

      在 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

  • 相关阅读:
    docker-compose 命令详解
    Ubuntu 安装 rabbitmq
    scrapy.cmdline.execute
    queue.Queue()
    多线程通信
    多线程(thread+queue 售票)
    协程
    线程
    利用Nginx实现反向代理web服务器
    利用Nginx实现反向代理web服务器
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11876382.html
Copyright © 2011-2022 走看看