接口自动化测试学习笔记

接口自动化测试

学习资料(一):

使用postman+newman+python做接口自动化测试

通过postman+newman+python可以批量运行调试接口,达到自动化测试的效果。

1、postman安装与使用

2、newman安装与使用

安装Newman

newman是为Postman而生,专门用来运行Postman编写好的脚本; 使用newman,你可以很方便的用命令行来执行postman collections

  • cnpm install newman --global #安装newman
  • npm install -g newman-reporter-html #安装html

验证安装成功:

官方帮助文档地址:

https://www.npmjs.com/package/newman
1)需要安装nodejs,并配置好环境
2)打开控制台,运行:npm install -g newman
3)校验是否安装成功,运行:newman --version

Newman 执行脚本

a)

newman run <collection-file-source> [options]

  run 后面跟上要执行的json文件或者URL(json 和 URL 都由postman导出生成),再后面跟一些参数,例如环境变量,测试报告,接口请求超时时间等等。最后给两个完整的例子做参考:

newman run D:/Buddy_Product_Enviroment.postman_collection.json --reporters cli,html,json,junit --reporter-json-export D:/jsonOut.json --reporter-junit-export D:/xmlOut.xml --reporter-html-export D:/htmlOut.html

b)

1.导出脚本,选中合集后右键点击-Export

2.进入到导出的脚本的路径下执行命令:newman run 执行顺序.postman_collection.json -r html

3.运行完之后,打开路径可以看到生成了html的结果

集成到jenkins

1.可以查看之前写的一篇通过tomcat的方式安装jenkins:https://www.cnblogs.com/zengxuejie/p/13626723.html

2.进入Jenkins构建一个项目:postman_api

3.进入项目的配置页面,构建-Execute Windows batch command.然后输入命令,这个命令就是在cmd里执行的命令,保存。

接口自动化测试学习笔记

4.保存后,直接构建项目,运行完成。

3、使用python脚本执行newman

# coding=utf-8
import time
import os
class postmanApiTest:
    #运行postman生成报告
    #通过newman

    def postman(self):
        jSONfname = 'D:/htmlOut' + time.strftime('%Y-%m-%d', time.gmtime())+'.html'
        # cmd = 'newman run ‪D:/Buddy_Test_Enviroment.postman_collection.json --reporters cli,html,json,junit  --reporter-html-export '+jSONfname
        cmd='newman run D:/Buddy_Product_Enviroment.postman_collection.json --reporters cli,html,json,junit --reporter-json-export D:/jsonOut.json --reporter-junit-export D:/xmlOut.xml --reporter-html-export D:/htmlOut.html'
        os.system(cmd)
        print('------------------------------------------------------------')
        print(jSONfname)
        if  os.path.isfile(jSONfname):
            return jSONfname
            print(jSONfname)
        else:
            return False
if __name__ == '__main__':
    a=postmanApiTest()
    a.postman()

学习资料(二)

简单实现接口自动化测试(基于python+unittest)

优化 第二版

接口调用异常处理,增加try,except处理,对于返回response.status_code,返回200进行结果比对,不是200数据异常信息。

#!/usr/bin/env python
#coding: utf-8
'''
unittest merchant backgroud interface
@author: zhang_jin
@version: 1.0
@see:http://www.python-requests.org/en/master/
'''

import json
import traceback
import requests


url = "http://cpright.xinhua-news.cn/api/match/image/getjson"

querystring = {
    "category": "image",
    "offset": "0",
    "limit": "30",
    "sourceId": "0",
    "metaTitle": "",
    "metaId": "0",
    "classify": "unclassify",
    "startTime": "",
    "endTime": "",
    "createStart": "",
    "createEnd": "",
    "sourceType": "",
    "isTracking": "true",
    "metaGroup": "",
    "companyId": "0",
    "lastDays": "1",
    "author": ""
}

headers = {
    'cache-control': "no-cache",
    'postman-token': "e97a99b0-424b-b2a5-7602-22cd50223c15"
    }


try:
    #Post接口调用
    response = requests.request("POST", url, headers=headers, params=querystring)

    #对http返回值进行判断,对于200做基本校验
    if response.status_code == 200:
        results = json.loads(response.text)
        if results['total'] == 191:
            print "Success"
        else:
            print "Fail"
            print results['total']
    else:
        #对于http返回非200的code,输出相应的code
        raise Exception("http error info:%s" %response.status_code)
except:
    traceback.print_exc()

学习资料(三)

接口自动化测试框架:python+requests+pytest+allure实现(CSDN)

众所周知,目前市面上大部分的企业实施接口自动化最常用的有两种方式:

1.基于工具类的接口自动化,如:

Postman+Newman+Jenkins+Git/svn
Jmeter+Ant+Jenkins+Git/svn

2.基于代码类的接口自动化,如:

Python+Requests+Pytest+Allure报告定制

待完善......

上一篇:postman


下一篇:newman安装