美文网首页
数据驱动 | python读取csv文件

数据驱动 | python读取csv文件

作者: Root_123 | 来源:发表于2019-01-15 17:05 被阅读42次

    转自虫师https://www.cnblogs.com/fnng/p/6111516.html

    image.png
    from selenium import webdriver
    import unittest
    import csv
    
    
    # 读取本地 CSV 文件
    data = csv.reader(open('login_test.csv', 'r'))
    
    # 读取整个文件的数据放到users数组
    users = []
    for i in data:
        user = []  #整行 
        for j in i:
            user.append(j)
        users.append(user)
    
    
    class loginTest(unittest.TestCase):
    
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.get("http://xxx.login.page")
    
        # 封装用户登录
        def user_login(self, username, password):
            self.driver.find_element_by_id("idInput").send_keys(username)
            self.driver.find_element_by_id("pwdInput").send_keys(password)
            self.driver.find_element_by_id("loginBtn").click()
    
        def test_login1(self):
            '''用户名、密码为空登录'''
            i = 0
            for user in users:  #整行
                print(user[0])
                if user[0] == 'user_pawd_null':
                    print(i)
                    username = users[i][1]
                    password = users[i][2]
                    break;
                else:
                    i +=1
            self.user_login(username, password)
        
        def test_login2(self):
            '''用户名正确,密码为空'''
            username = users[1][1]
            password = users[1][2]
            self.user_login(username, password)
    
        def test_login3(self):
            '''用户名为空,密码正确'''
            username = users[2][1]
            password = users[2][2]
            self.user_login(username, password)
    
        def test_login4(self):
            '''用户名密码正确 '''
            username = users[3][1]
            password = users[3][2]
            self.user_login(username, password)
    
    
    if __name__ == '__main__':
        unittest.main()
    

    1、创建了一CSV文件,然后把登录用的测试数据写到了文件了。 --->创建了一个专门存放数据的文件,这多有逼格,自我感觉良好。

    2、读取CSV文件,并且通过for循环,把所有数据组装成一个二维数组,并放users数组中。--->这没什么呀,只是多写了个for循环而已,继续自我感觉良好。

    3、test_login1用例,为用户名密码都为空的用例,判断users数组中某一行的第一列是否为“user_pawd_null”,是的话,说明这一行就是我想要的。取这一行的第二、第三列的测试数据,进行登录测试。 --->这个取数据的方式有点。。。有点麻烦!

    4、没关系!没关系!麻烦的话,我们看test_login2 ,用users[1][1]和users[1][2]也能取到CSV表第二行的数据。 ---->这不就不那么麻烦了!嗯,是不那么麻烦了,不过,有点傻逼。你确定你清楚的知道users[1][1]和users[1][2] 代表的啥?别急!别急!我打开CSV文件看看第2行对应是什么数据。

    这就是你玩的高大上的“数据驱动”,再下实在是佩服佩服!什么你还有更高大上,简洁的玩法?真心请赐教。。。。
    ==>【写入csv文件】

    # 读取本地 CSV 文件
    csv_file = csv.writer(codecs.open('user_info.csv', 'w','utf_8_sig'), 
                                      dialect="excel")
    
    # 写入标题
    csv_file.writerow(['用户名','密码','断言','结果'])
    
    # 循环写入数据
    for user in users:
        csv_file.writerow(user)
    
    # 打印
    print(users)
    

    相关文章

      网友评论

          本文标题:数据驱动 | python读取csv文件

          本文链接:https://www.haomeiwen.com/subject/vuiydqtx.html