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

  • 相关阅读:
    Linux安装ElasticSearch,Elasticsearch安装辅助插件,IK分词器安装,使用IK分词器
    springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署
    dubbo:分布式系统中的相关概念,服务提供者,服务消费者,dubbo高级特性
    Maven高级:分模块开发与设计,聚合,集成,属性,版本管理,多环境开发配置和跳过测试,私服搭建
    springMVC:校验框架:多规则校验,嵌套校验,分组校验;ssm整合技术
    springMVC:异步调用,异步请求跨域访问,拦截器,异常处理,实用技术
    Web全段重点整理
    spring事务:事务控制方式,使用AOP控制事务,七种事务传播行为,声明事务,模板对象,模板对象原理分析
    Java基础技术基础面试【笔记】
    高级知识点:多线程,资源管理【笔记】
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11876382.html
Copyright © 2011-2022 走看看