全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1223 4
2023-02-02
目的:将数据写入csv文件,并保存

要求:现在有多个测试用例,每个用例都是一个dict,需要将所有用例存储到一个csv文件中

#将数据存入csv
        # case1 = [{'name': 'Tony', 'age': 17}]
        # case2 = [{'name': '李华', 'age': 21}]
        #数据样例

flag = 0
def write_csv(self, case):
        header = list(case.keys())#将key作为表头(列名)

        global flag #使用关键字声明全局变量

        path ='/Users/test.csv'#文件存储路径,没有的话会新建文件

        with open(path,'a',newline='',encoding='utf—8') as f:
        #以‘a'方式打开,是追加写入,newline 等于空字符,避免空行,编码为utf-8
            writer = csv.DictWriter(f,fieldnames=header)

            if  flag == 0:#第一次写入时写入表头
                writer.writeheader()
                writer.writerow(case)#写入一行
                flag = 1
            else:#再次调用时只写入值
                writer.writerow(case)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2023-2-2 13:28:05
目的:pandas读取csv文件中的数据,做接口自动化测试
要求:每行数据是一个测试用例,运行脚本后,自动按顺序执行测试用例
1.请求方式不同,需要的参数不同。所以有缺失值需要处理
2.需要将返回的状态码写入原文件

import pandas as pd
#使用pandas库读取csv文件

class option_csv(object):
    def __init__(self):
        self.file = pd.read_csv(path,index_col=0,header=0)
        self.file = self.file.where(self.file.notnull(),None)#将nan替换为none

    def get_line(self):#获取所有行数
        lens = len(self.file)
        return lens

    def get_row(self,row):#获取某列的所有数据
        return self.file.iloc[row,:]

    def write_result(self,result,row):#修改第row行result的内容
        self.file.loc[row,'result'] = result
        self.file.to_csv(path)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-2-2 13:29:34
'''
将数据从csv中取出
'''
from DataBase import read_excel

class read_data(object):
    def __init__(self):
        self.files = read_excel.option_csv()
  
    def get_value(self,row):
        self.case = self.files.get_row(row)

        self.name = self.case["case_name"]
        self.method = self.case['method']
        self.params = self.case['parame']
        self.url = self.case['url']
        self.data = self.case['data']
        self.body = self.case['body']
        self.espect_code = str(self.case["espect_code"])

        return self
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-2-2 13:31:52
'''
读取测试用例运行
'''
import unittest
import requests
from DataBase import read_data, read_excel

class test_run(unittest.TestCase):
    def setUp(self) -> None:
        print("====begin the test====")

    def test_run(self):
        nrows = read_excel.option_csv().get_line()
        get = read_data.read_data()

        for i in range(1, nrows):
            case = read_data.read_data().get_value(i)
            try:
                req = requests.request(method=case.method, url=case.url, params=case.params, json=case.body,
                                       data=case.data)
                res = req.status_code
                self.assertEqual(case.espect_code, res, msg=f"{case.name}is failed" + "\n" + f"{req.text}")
                read_excel.option_csv().write_result(res, i)

            except (requests.ConnectionError, requests.HTTPError, requests.URLRequired, requests.Timeout) as e:
                print(e)

    def tearDown(self) -> None:
        print("====end the test====")

if __name__ == '__main__':
    unittest.main()
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群