Exemplo n.º 1
0
 def data_processing(self, token, types, param):
     for item in types:
         name = item['name']
         type = item['type']
         must = item['must']
         if type == 1:
             pass
         elif type == 2:
             pass
         elif type == 3:
             param[name] = token
         elif type == 4:
             param[name] = Tool.hash_password(param[name], token)
     return param
Exemplo n.º 2
0
    def run(self):
        # 读json文件,取测试数据
        api_file = Tool.read_json("interface")
        test_data_file = Tool.read_json("test_data")
        expect_data_file = Tool.read_json("expect_data")

        # 获取接口的具体信息,循环读取某一接口
        api_list = api_file["api_list"]

        for api in api_list:
            print(api)
            url = api["url"]
            method = api["method"]
            need_login = api["need_login"]["type"]
            login_username = api["need_login"]["username"]
            login_password = api["need_login"]["password"]
            test_datas = api["test_data"]
            expect_data_addr = api["expect_data"]
            expect_datas = expect_data_file[expect_data_addr]
            params = test_data_file[test_datas]

            for index in range(len(params)):
                # print("测试和期望",params[index],expect_datas[index])
                param = params[index]
                expect_data = expect_datas[index]
                print("期望结果", expect_data)
                if '_token' in param.keys():
                    param["_token"] = self.token
                    print("测试数据", param)
                if need_login == 0:
                    print("执行不需要登录的")
                    if method == "get":
                        result = self.net.get(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)
                    elif method == "post":
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)
                    elif method == "delete":
                        # print("请求的params", param)
                        # print("执行需要登录的post")
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)
                    elif method == "put":
                        # print("请求的params", param)
                        # print("执行需要登录的post")
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)

                else:
                    print("执行登录")
                    parms = {}
                    hash_password = Tool.hash_password(login_password,
                                                       self.token)
                    parms["user_name"] = login_username
                    parms["_token"] = self.token
                    parms["password"] = hash_password
                    r_login = self.net.post("/auth/login", parms)
                    print("登录结果:", r_login.text)

                    if method == "get":
                        result = self.net.get(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)

                    elif method == "post":
                        # print("请求的params", param)
                        # print("执行需要登录的post")
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)

                    elif method == "delete":
                        # print("请求的params", param)
                        print("----执行需要登录的删除请求----")
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果:", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)
                    elif method == "put":
                        # print("请求的params", param)
                        # print("执行需要登录的post")
                        result = self.net.post(url, param)
                        result_dict = json.loads(result.content)
                        print("实际结果", result_dict)
                        # print("开始比较实际结果和期望值")
                        flag = self.check.comparison_result(
                            expect_data, result_dict)
                        self.write.write_report(url, param, expect_data,
                                                result_dict, flag)
                result = self.net.post("/auth/logout", {})
                print('---------------')