• 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

  • 相关阅读:
    10 种保护 Spring Boot 应用的绝佳方法
    Redis 如何分析慢查询操作?
    Spring Boot 主类及目录结构介绍
    Redis 再牛逼,也得设置密码!!
    Spring Data Redis 详解及实战一文搞定
    Spring Boot Redis Cluster 实战干货
    超详细的 Redis Cluster 官方集群搭建指南
    Redis Linux 安装运行实战全记录
    hdu 4790 Just Random (思路+分类计算+数学)
    poj 1328 Radar Installation(贪心)
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11876382.html
Copyright © 2020-2023  润新知