1.python3 環境的搭建,pycharm安裝
2.想要用requests做自動化接口測試,那么就得先安裝requests這個第三方庫,在命令窗口執行 pip install requests
3.下載HTMLTestRunner.py文件,這個文件很多是兼容python2.X版本的,所以如果是用pytho3.X的同學,記得百度一下,然后再修改,然后把文件拷貝到python3安裝路徑的Lib文件夾下。如果是python3的同學可以到這里下載:http://pan.baidu.com/s/1jIN28zO
4.接下來就是實戰了,簡單的登錄接口測試
import unittest
import requests
import time
import os
import HTMLTestRunner
class MyTest_Case(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def testlogin(self):
url = 'http://120.76.247.73:11013/login'#url地址
headers = {'Content-Type': 'application/json'}#請求頭
json = {'source': 'wms', 'mobile': '13600000000', 'password': '1234567'}#body,這里的格式是josn格式
r = requests.post(url=url, json=json, headers=headers)#發送請求,這里需要注意一點,我看網上很多案例都是date="",但是當我用date=的時候就不行了,不知道為啥,一定要用josn才可以。
self.assertEqual(200,r.status_code,'登錄失敗')
def testsearch(self):
url = 'http://120.76.247.73:11013/api.do' # url:接口地址
data = {
"name": "wmsCustomerController.customerFind",
"args": [{"first": 0, "rows": 10},
{
"serachValue": "啥子"
}]
} # data:接口傳遞的參數
headers = {'Content-Type': 'application/json',
'Authorization': 'Bearer eyJraWQiOiI3ZGRiNjAzYS04OGViLTRhNjYtOGU2Yi04ZTgzMWFiN2NhZTUiLC'
'JhbGciOiJSUzI1NiJ9.eyJpc3MiOiJpc3N1ZXIiLCJhdWQiOiJhdWRpZW5jZSIsImV4cCI6'
'MTUwNjMyODgzMywianRpIjoiQW5jdzAyU2hpUWxOOEZZU05ET0pNdyIsImlhdCI6MTUwNTE'
'xOTIzMywibmJmIjoxNTA1MTE5MTEzLCJzdWIiOiIxMzYwMDAwMDAwMCIsImF0dHJpYnV0ZX'
'MiOiJ7XCJtb2JpbGVcIjpcIjEzNjAwMDAwMDAwXCIsXCIkZXhwaXJhdGlvbi10aW1lXCI6M'
'TUwNjMyODgzMzI4MyxcInVzZXJOYW1lXCI6XCJhZG1pblwiLFwiY3VzdG9tZXJcIjpmYWxz'
'ZX0ifQ.O2YuErC2DgDoNwuzk2hcih5-7Hyfwumzm5BmJDg9eWE4fW577sXfhmBUZINxGzSC'
'6L-5P9Cdz2HY_lxbZGOu0Kkfh8cFOzfrGgLVd0jYTKGdLFnqGJMnfoN6ltXfQjpkHpoPbiG'
'34WkmpfviEpa-mpvdqJXWxkzsG-c934xiV9TZJoMNVeq3qv0fN7gq1HuuTrvzvFYth6NDqD'
'KHF0H_9lAdVrX-mYgQPU1dK1luZyCt_HGqCQg6GZbSBcFBRbEmhohE_mnchgF_14ZZF45XU'
'-DJsc_LSW0vP66gNxILQ_CClgqqlN4mHeieq3m4BMS_4huScRQcdKn7CgM4mYYGTA'}
# header:傳遞header信息
# files:接口中需要上傳文件則需要用到該參數
r = requests.post(url, json=data, headers=headers) # 請求url,獲得返回的數據信息
self.assertEqual(200,r.status_code,'查詢失敗')#這里需要注意一下,狀態碼是純數字,不是字符串類型,所以在斷言的時候不要寫成'200',要不會一直是失敗。
if __name__ == "__main__":
report_title = u'WMS接口報告'
# 定義腳本內容,加u為了防止中文亂碼
desc = u'WMS接口報告測試報告詳情:'
# 定義date為日期,time為時間
date = time.strftime("%Y%m%d")
time = time.strftime("%Y%m%d%H%M%S")
# 定義path為文件路徑,目錄級別,可根據實際情況自定義修改
# path = 'F:/Python_test/' + date + "/login/" + time + "/"
# 定義報告文件路徑和名字,路徑為前面定義的path,名字為report(可自定義),格式為.html
# report_path = path + "report.html"
# 判斷是否定義的路徑目錄存在,不能存在則創建
# if not os.path.exists(path):
# os.makedirs(path)
# else:
# pass
# 定義一個測試容器
testsuite = unittest.TestSuite()
# 將測試用例添加到容器
testsuite.addTest(MyTest_Case("testlogin"))
testsuite.addTest(MyTest_Case("testsearch"))
# 將運行結果保存到report,名字為定義的路徑和文件名,運行腳本
# with open(report_path, 'w+') as report:
# runner = HTMLTestRunner(stream=report, title=report_title, description=desc)
# runner.run(testsuite)
# 定義一個測試容器
# testsuite = unittest.TestSuite()
# filename = 'F:\\temp.html'
with open('F:\\temp.html', 'wb') as fp:
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=report_title, description=desc)
runner.run(testsuite)
# 關閉report,腳本結束
# fp.close()