接口测试Demo

来源:互联网 发布:网络红酒业务员好做吗 编辑:程序博客网 时间:2024/06/06 07:02
  • 接口测试分类

    • 接口功能自动化
    • 接口性能自动化

  • 工具篇

    手工

    • Postman : Chrome插件

    自动化

    • SoapUi
    • Jmeter
    • robot framework + httplibrary

    开发

    • java + httpclient
    • python + requests

  • 接口测试开发篇

    • Excel存储测试用例
    • Requests库读取excel中用例,组装URL,发送请求
    • 手工拼接html格式测试报告
    • 调用mail库自动邮件发送测试报告

  • Excel用例
No. API Purpose API Host Port Request Address Request Method Request Data Type Request Data Encryption Check Point Correlation Active TC_001 get data 192.168.1.3 8080 /MarketServer/update POST Form No TC_002 get data 192.168.1.3 8080 /MarketServer/update GET Form No
  • 部分代码如下:
def apicall(method,url,params):    s = requests.Session()    headers = { 'Content-Type' : 'text/html; charset=UTF-8',                'X-Requested-With' : 'XMLHttpRequest',                'Connection' : 'keep-alive',                'Referer' : 'http://192.168.1.3:8080',                'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,\                 like Gecko) Chrome/47.0.2526.111 Safari/537.36'                }    if method == 'GET':        if params != '':            page = s.get(url,params,timeout = 0.01)        else:            page = s.get(url,timeout = 0.01)    if method == 'POST':        if params != '':            page = s.post(url,params,headers,timeout = 0.01)def get_page():    xls = read_excel(path)    for row_xls in xls:        if row_xls in xls:            url = "http://" + row_xls["API Host"] + ":" + str(int(row_xls["Port"]))            method = row_xls["Request Method"]            params = row_xls["Request Data"]            try:                result = apicall(method,url,params)            except Exception as e:                mylog.error(row_xls["NO."] + ' ' + row_xls["API Purpose"] + " : " + str(e))            else:                status = result.status_code                errorCase = []                #用于保存接口返回的内容和HTTP状态码                if status == 200 :                    if re.search(row_xls["Check Point"], str(result.text)):                        mylog.info(row_xls["NO."] + ' ' + row_xls["API Purpose"] + ' Suceuss,' + str(status) + ', ' + str(result.text))                    else:                        mylog.error(row_xls["NO."] + ' ' + row_xls["API Purpose"] + ' Failed,' + str(status) + ', ' + str(result.text))                        errorCase.append((row_xls["NO."] + ' ' + row_xls["API Purpose"],  str(status), 'http://'+ row_xls["API Host"] + row_xls["Request Address"], result.text))                        return errorCase                else:                    mylog.error(row_xls["NO."] + ' ' + row_xls["API Purpose"] + ' Failed,' + str(status) + ', ' + str(result.text))                    errorCase.append((row_xls["NO."] + ' ' + row_xls["API Purpose"], str(status), 'http://'+ row_xls["API Host"] + row_xls["Request Address"], result.text))                    return errorCase

@new

0 0