多接口、多数值接口测试脚本编写

发表于:2020-9-30 09:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:dididada10    来源:CSDN

  写了个简单的接口测试的脚本,实现的功能是:
  1.多个接口,多组参数值测试
  2.打印url、输入参数、断言内容
  3.断言正确就返回结果Pass,断言错误就返回结果Fail,最后统计通过和失败的用例数
  数据、程序分离,详情如下:
  程序:
#encoding=utf-8
# e5 多接口多参数组合
# R  2018/11/2 23:22

import requests
import json
import os
import hashlib
import pickle
from conf import *   # 文件,定义register,url

static_data={}
pass_num=0
fail_num=0
total_num=0

def send_request(interface,value):
    r = requests.post(interface,data=value)
    return r

def print_response_info(response_obj):
    print("测试url是:    ",interface)
    print("测试参数是:   ",value)
    print("断言内容:     ",assert_content)
    print()
    print("返回码是:     ",response_obj.status_code)
    print("返回字符串是: ",response_obj.text)

def assert_response(response_obj,assert_content):
    try:
        assert assert_content in response_obj.text
        return 1
    except:
        return 0  

with open(r"D:\data\test_data.txt",'r+') as f:
    for line in f:
        no=eval(line.split("|")[0])
        interface=eval(line.split("|")[1])
        value=json.dumps(eval(line.split("|")[2]))
        assert_content= line.strip().split("|")[3]
        
        print('..............register',no,'..............')
        print()
        r = send_request(interface,value)
        print_response_info(r)
        assert_response(r,assert_content)
        flag = assert_response(r,assert_content)  # 要把返回值传回来,否则flag一直是0

        # 判断并统计正确、错误的个数
        if flag==1:
            pass_num +=1
            print ("测试结果:      Pass")
        elif flag==0:
            print ("测试结果:      Fail")
            fail_num +=1  
        print()

total_num=pass_num+fail_num
print ("本次接口测试共执行用例:%d, 通过:%d, 失败:%d " %(total_num,pass_num,fail_num))
  数据:
  一个文档conf.py写url:(与脚本在同一路径下)
# -*- coding: cp936 -*-

ip="xxxx"

port="8080"

# 定义多个接口url

register="http://"+ip+":"+port+"/register/"

register1="http://"+ip+":"+port+"/register1/"
  数据:
  一个文档test_data.txt写数据:
  #定义用例号、url、输入参数、断言内容()因为是自己写用来测试的接口,返回值不是很规范,简单示意一下)
1|register|{'username': '', 'password': 'candy12345', 'email': 'candy@qq.com'}|{"username": ""

2|register|{'username': 'candy', 'password': '', 'email': 'candy@qq.com'}|"username": "candy",

3|registera|{'username': '', 'password': 'candy12345', 'email': 'candy@qq.com'}|{"username": "can"

4|register1|{'username': 'candy', 'password': '', 'email': 'candy@qq.com'}|"username": "candy",
  执行结果:

  上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号