目前接到一个商城接口测试项目,根据项目要求,我这边整理下测试思路,先采用Python脚本进行实现:
1、数据与业务分离,所有的测试数据源从excel表中读取
2、生成MD5值,并写入excel表格
以下为测试代码:
MD5.py
#coding=utf-8
__author__ = 'hqe0079'
import hashlib
import xlrd
import json
import time
from xlutils.copy import copy
"""
生成md5值
"""
def md5(str):
m = hashlib.md5()
m.update(str)
return m.hexdigest()
def write_md5_excel(xpath):
#打开xls格式文件,并保存之前数据的格式
rb = xlrd.open_workbook(xpath,formatting_info=True)
#获取当前sheet页
r_sheet = rb.sheet_by_index(0)
#获取总列数
table_col_nums = r_sheet.ncols
#获取总行数
table_row_nums = r_sheet.nrows
#拷贝变量
wb = copy(rb)
#根据wb获取对应是sheet
w_sheet = wb.get_sheet(0)
for i in range(1,table_row_nums):
#初始化str
row_data = ""
for j in range(0,table_col_nums-3):
#获取单元格值
cvalue = r_sheet.cell(i,j).value
if type(cvalue).__name__ == 'unicode':
cvalue = cvalue.encode('utf-8')
elif type(cvalue).__name__ == 'float':
cvalue = str(int(cvalue))
#row_data = row_data + cvalue
#字符串连接
print cvalue
row_data = row_data + cvalue
#生成MD5值
strtmp = md5(row_data)
print strtmp;
#写入excel表格中
w_sheet.write(i,table_col_nums-3,strtmp)
wb.save(xpath)
return md5(row_data)
def Get_data_From_Excel(xpath,row_index=None):
json_s = json.loads('{"A":"","B":"","C":"","D":"","E":""}')
print json_s
#打开xls格式文件,并保存之前数据的格式
rb = xlrd.open_workbook(xpath,formatting_info=True)
#获取当前sheet页
r_sheet = rb.sheet_by_index(0)
#获取总列数
table_col_nums = r_sheet.ncols
#获取总行数
table_row_nums = r_sheet.nrows
list = []
#进行格式转换
for i in range(0,table_col_nums):
cvalue = r_sheet.cell(row_index,i).value
if type(cvalue).__name__ == 'unicode':
cvalue = cvalue.encode('utf-8')
elif type(cvalue).__name__ == 'float':
cvalue = str(int(cvalue))
list.append(cvalue)
json_s["A"] = list[0]
json_s['B'] = list[1]
json_s['C'] = list[3]
json_s['D'] = list[4]
json_s['E'] = list[5]
print json_s
return json_s
if __name__ == '__main__':
write_md5_excel("test.xls")
使用requests方法实现接口测试
API_Test#!/usr/bin/python
#coding=utf-8
import requests
import MD5
#Post方法
def bwsc_post(url,data=None, json=None, **kwargs):
erp_post = requests.post(url,data =data,json=json,**kwargs)
print erp_post.url
print erp_post.status_code
print erp_post.text
return erp_post
#Get方法
def bwsc_get(url,params=None,**kwargs):
erp_get = requests.get(url,params=params,**kwargs)
print erp_get.url
print erp_get.status_code
print erp_get.text
return erp_get
if __name__ == '__main__':
url_post = "xxx"
data = MD5.Get_data_From_Excel("test.xls",row_index=1)
bwsc_post = (url_post,params=data)