合并
This commit is contained in:
1
Interface/test_requests.py
Normal file
1
Interface/test_requests.py
Normal file
@@ -0,0 +1 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
16
Public/create_report.py
Normal file
16
Public/create_report.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# encoding: utf-8
|
||||
"""
|
||||
@author: lileilei
|
||||
@file: create_report.py
|
||||
@time: 2017/8/3 12:27
|
||||
"""
|
||||
from Public.log import LOG,logger
|
||||
@logger('保存测试结果')
|
||||
def save_result(testtime,toial,passnum,fail):
|
||||
try:
|
||||
f=open('result.txt','a')
|
||||
f.write("%s=%s=%s=%s \n"%(testtime,toial,passnum,fail))
|
||||
f.close()
|
||||
except:
|
||||
LOG.info('保存测试结果出错,原因:%s'%Exception)
|
||||
print('记录测试结果失败')
|
||||
32
Public/emmail.py
Normal file
32
Public/emmail.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Author : leizi
|
||||
import smtplib,time,os
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import formataddr,parseaddr
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.base import MIMEBase
|
||||
def load_emil_setting():#从配置文件中加载获取email的相关信息
|
||||
import yaml
|
||||
data_file = open(r".\\config\\email.yaml","r")
|
||||
datas = yaml.load(data_file)
|
||||
data_file.close()
|
||||
return (datas['foremail'],datas['password'],datas['toeamil'],datas['title'])
|
||||
def sendemali(filepath): #发送email
|
||||
from_addr,password,mail_to,mail_body=load_emil_setting()
|
||||
msg = MIMEMultipart()
|
||||
msg['Subject'] = '接口自动化测试报告'
|
||||
msg['From'] ='自动化测试平台'
|
||||
msg['To'] = mail_to
|
||||
msg['Date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
|
||||
att = MIMEText(open(r'%s'%filepath, 'rb').read(), 'base64', 'utf-8')
|
||||
att["Content-Type"] = 'application/octet-stream'
|
||||
att["Content-Disposition"] = 'attachment; filename="pyresult.html"'
|
||||
txt = MIMEText("这是测试报告的邮件,详情见附件",'plain','gb2312')
|
||||
msg.attach(txt)
|
||||
msg.attach(att)
|
||||
smtp = smtplib.SMTP()
|
||||
server = smtplib.SMTP_SSL("smtp.qq.com",465)
|
||||
server.login(from_addr, password)
|
||||
server.sendmail(from_addr, mail_to, msg.as_string())
|
||||
server.quit()
|
||||
|
||||
102
Public/pyreport_excel.py
Normal file
102
Public/pyreport_excel.py
Normal file
@@ -0,0 +1,102 @@
|
||||
# encoding: utf-8
|
||||
"""
|
||||
@author: lileilei
|
||||
@file: pyreport_excel.py
|
||||
@time: 2017/6/7 8:47
|
||||
"""
|
||||
import xlrd ,os,xlwt,yaml,xlsxwriter #导入库
|
||||
from xlwt import *
|
||||
def yangshi1():
|
||||
style = XFStyle()
|
||||
fnt = Font()
|
||||
fnt.name = u'微软雅黑'
|
||||
fnt.bold = True
|
||||
style.font = fnt
|
||||
alignment = xlwt.Alignment()
|
||||
alignment.horz = xlwt.Alignment.HORZ_CENTER
|
||||
alignment.vert = xlwt.Alignment.VERT_CENTER
|
||||
style.alignment = alignment # 给样式添加文字居中属性
|
||||
style.font.height = 430 # 设置字体大小
|
||||
return style
|
||||
def yangshi2():
|
||||
style1 = XFStyle()
|
||||
alignment = xlwt.Alignment()
|
||||
alignment.horz = xlwt.Alignment.HORZ_CENTER
|
||||
alignment.vert = xlwt.Alignment.VERT_CENTER
|
||||
style1.alignment = alignment # 给样式添加文字居中属性
|
||||
style1.font.height = 330 # 设置字体大小
|
||||
return style1
|
||||
def yangshi3():
|
||||
style1 = XFStyle()
|
||||
style1.font.height = 330 # 设置字体大小
|
||||
return style1
|
||||
def yangshique(me):
|
||||
if me =='pass':
|
||||
style=yangshi1()
|
||||
Pattern=xlwt.Pattern()
|
||||
Pattern.pattern=xlwt.Pattern.SOLID_PATTERN
|
||||
Pattern.pattern_fore_colour=xlwt.Style.colour_map['green']
|
||||
style.pattern=Pattern
|
||||
else :
|
||||
style=yangshi2()
|
||||
Pattern=xlwt.Pattern()
|
||||
Pattern.pattern=xlwt.Pattern.SOLID_PATTERN
|
||||
Pattern.pattern_fore_colour=xlwt.Style.colour_map['red']
|
||||
style.pattern=Pattern
|
||||
return style
|
||||
def create(filename,list_pass,list_fail,listids,listnames,listkeys,listconeents,listurls,listfangshis,listqiwangs,list_json,listrelust):
|
||||
filepath = open(r'.\config\test_report.yaml', encoding='utf-8')
|
||||
file_config = yaml.load(filepath)
|
||||
file = Workbook(filename)
|
||||
table = file.add_sheet('测试结果',cell_overwrite_ok=True)
|
||||
style=yangshi1()
|
||||
for i in range(0, 7):
|
||||
table.col(i).width = 380*20
|
||||
style1=yangshi2()
|
||||
table.write_merge(0,0,0,6,'测试报告',style=style)
|
||||
table.write_merge(1,1,0,6,'',style=style)
|
||||
table.write_merge(2,3,0,6,'测试详情',style=style1)
|
||||
table.write(4,0,'项目名称',style=style1)
|
||||
table.write(5,0,'接口版本',style=style1)
|
||||
table.write(6,0,'提测时间',style=style1)
|
||||
table.write(7,0,'提测人',style=style1)
|
||||
table.write(4,2,'测试人',style=style1)
|
||||
table.write(5,2,'测试时间',style=style1)
|
||||
table.write(6,2,'审核人',style=style1)
|
||||
table.write(4,4,'通过',style=style1)
|
||||
table.write(5,4,'失败',style=style1)
|
||||
table.write(6,4,'成功率',style=style1)
|
||||
table.write(4, 1, (file_config['projectname']),style=style1)
|
||||
table.write(5, 1, file_config['interfaceVersion'],style=style1)
|
||||
table.write(6, 1, file_config['tijiao_time'],style=style1)
|
||||
table.write(7, 1, file_config['tijiao_person'],style=style1)
|
||||
table.write(4, 3, file_config['ceshi_person'],style=style1)
|
||||
table.write(5, 3, file_config['ceshi_time'],style=style1)
|
||||
table.write(6, 3, file_config['shenhename'],style=style1)
|
||||
table.write(4, 5, (list_pass), style=style1)
|
||||
table.write(5, 5, (list_fail), style=style1)
|
||||
table.write(6, 5, ('%.2f%%'%((list_pass)/(len(listrelust)))), style=style1)
|
||||
table1 = file.add_sheet('测试详情',cell_overwrite_ok=True)
|
||||
table1.write_merge(0,0,0,8,'测试详情',style=style)
|
||||
for i in range(0, 8):
|
||||
table1.col(i).width = 400*20
|
||||
table1.write(1,0,'用例ID',style=yangshi3())
|
||||
table1.write(1,1,'用例名字',style=yangshi3())
|
||||
table1.write(1,2,'key',style=yangshi3())
|
||||
table1.write(1,3,'请求内容',style=yangshi3())
|
||||
table1.write(1,4,' url',style=yangshi3())
|
||||
table1.write(1,5,'请求方式',style=yangshi3())
|
||||
table1.write(1,6,'预期',style=yangshi3())
|
||||
table1.write(1,7,'实际返回',style=yangshi3())
|
||||
table1.write(1,8,'结果',style=yangshi3())
|
||||
for i in range(len(listids)):
|
||||
table1.write(i+1, 0, listids[i],style=yangshi3())
|
||||
table1.write(i+1, 1, listnames[i],style=yangshi3())
|
||||
table1.write(i+1, 2, listkeys[i],style=yangshi3())
|
||||
table1.write(i+1, 3, listconeents[i],style=yangshi3())
|
||||
table1.write(i+1, 4, listurls[i],style=yangshi3())
|
||||
table1.write(i+1, 5, listfangshis[i],style=yangshi3())
|
||||
table1.write(i+1, 6, listqiwangs[i],style=yangshi3())
|
||||
table1.write(i+1, 7, str(list_json[i]),style=yangshi3())
|
||||
table1.write(i+1, 8, listrelust[i], style=yangshique(listrelust[i]))
|
||||
file.save(filename)
|
||||
35
README.md
35
README.md
@@ -1,36 +1,9 @@
|
||||
# 接口测试框架(基于json格式、http协议,dubbo协议请求,python3,不兼容python2.x版本)
|
||||
## java实现版本:https://github.com/liwanlei/java_jiekou
|
||||
# 接口测试框架(基于json格式、http请求,python3,不兼容python2.x版本)
|
||||
## 注:现在基于Excel文件管理测试用例基本实现,)
|
||||
|
||||
# 2018-9-14版本修改
|
||||
### 1.失败用例重试功能,失败用例可以重试,重试次数可配置
|
||||
### 2.去掉重复的功能
|
||||
### 3.基础url可以在config配置,只需要写api
|
||||
|
||||
# 2018-3-13版本修改
|
||||
### 原来的测试报告更加详细的展示错误类型,对部分代码进行了优化,断言结果返回更加详细,更快的定位测试问题
|
||||
|
||||
## (目前在部分window上会出现FileNotFoundError [Errno 2] No such file or directory,这个bug是路径过长,解决方案为吧log日志放在当前目录,或者修改动态生成的文件的名字,给了第一种方式,测试日志放在当前目录)
|
||||
## qq交流群:194704520 一群 683894834 二群
|
||||
# 个人公众号
|
||||
## qq交流群:194704520
|
||||
### 使用的库 requests,绝大部分是基于Python原有的库进行的,这样简单方便,
|
||||
# 友情推荐本人其他开源代码:
|
||||
# 1.python接口测试平台版本!https://github.com/liwanlei/FXTest
|
||||
# 2.python app自动化测试平台版本:https://github.com/liwanlei/UFATestPlan
|
||||
# 3.python+flask 做后台,实现微信小程序:https://github.com/liwanlei/webchat_app
|
||||
### 使用脚本参数分离等思想,尽可能降低代码的耦合度。
|
||||
# 2017-11-1版本修改
|
||||
## 引入ddt数据驱动和BSTestRunner,并且测试过程使用python的unittest库,运行可以使用run_new来运行测试,新的运行更加简单,对预期结果进行了自定义,
|
||||
## 并且对预期结果的自定义格式进行转换,升级后的接口测试框架提供了两套的运行模式,一套是封装后基于自定义的断言格式的接口测试的框架,比较简单粗糙,但是
|
||||
## 定义的报告更加具有代表性,一套是封装好完全基于python库的接口测试。使用起来简单,可以供大家选择,新增加测试用例格式为ddt_case.py的格式。
|
||||
# 运行后的测试报告如下
|
||||

|
||||
# log日志
|
||||

|
||||
# 新增后可以提供两个入口让供你选择,
|
||||
## 一:自定义断言方式,自定义测试报告,提供Excel,html格式报告,均为自定义。
|
||||
## 二:引用unittest,ddt和BSTestRunner等,让测试用例更加简单明了,代码更加简洁。通俗易懂,且使用更多成熟的框架。
|
||||
# ---------------旧版本内容---------
|
||||
# 首先我们来看下我们的目录
|
||||
##
|
||||

|
||||
@@ -42,6 +15,7 @@
|
||||
### 5.report 存放测试报告,
|
||||
### 6.run_excel_re.py/run_html.py 主运行文件。运行后可以生成相应的测试报告
|
||||
##
|
||||
|
||||
## 产生的html测试报告如下
|
||||

|
||||
##
|
||||
@@ -52,3 +26,6 @@
|
||||

|
||||
### 现在的测试结构更加完整,最新的一次提交增加了log日志的展示,使功能更加完善,log日志在控制台展示如下,对目录进行优化
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
4
config/email.yaml
Normal file
4
config/email.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
foremail: '952943386@qq.com'
|
||||
password: "zzaikjtenujtbaif"
|
||||
toeamil: "leileili126@163.com,952943386@qq.com"
|
||||
title: "测试报告"
|
||||
7
config/test_report.yaml
Normal file
7
config/test_report.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
projectname: '图灵'
|
||||
interfaceVersion: '1.0.1'
|
||||
tijiao_time: 2017-3-12
|
||||
tijiao_person: 小仓娃
|
||||
ceshi_person: leizi,beijing
|
||||
ceshi_time: 2017-4-13
|
||||
shenhename: 雷子
|
||||
24
log/jiekou-2017-10-16-20.log
Normal file
24
log/jiekou-2017-10-16-20.log
Normal file
@@ -0,0 +1,24 @@
|
||||
[2017-10-16 20:54:46.439386] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-10-16 20:54:46.900412] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-10-16 20:54:47.323436] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-10-16 20:54:47.332437] INFO: jiekou: 当前模块 测试
|
||||
[2017-10-16 20:54:47.554450] INFO: jiekou: inputdata> 参数:sasa, url:http://www.tuling123.com/openapi/api ,返回:{'code': 40001, 'text': '亲爱的,key不对哦。'},预期:code=40001
|
||||
[2017-10-16 20:54:47.556450] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:47.654455] INFO: jiekou: inputdata> 参数:, url:http://www.tuling123.com/openapi/api
|
||||
,返回:{'code': 40002, 'text': '有啥事吗?'},预期:code=40002
|
||||
[2017-10-16 20:54:47.656455] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:48.161484] INFO: jiekou: inputdata> 参数:, url:https://api.douban.com/v2/photo/:id ,返回:{'msg': 'uri_not_found', 'code': 1001, 'request': 'POST /v2/photo/:id'},预期:code=1001&msg=uri_not_found
|
||||
[2017-10-16 20:54:48.163484] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:48.230488] INFO: jiekou: 当前模块 保存测试结果
|
||||
[2017-10-16 20:54:56.272948] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-10-16 20:54:56.295950] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-10-16 20:54:56.323951] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-10-16 20:54:56.330952] INFO: jiekou: 当前模块 测试
|
||||
[2017-10-16 20:54:56.548964] INFO: jiekou: inputdata> 参数:sasa, url:http://www.tuling123.com/openapi/api ,返回:{'code': 40001, 'text': '亲爱的,key不对哦。'},预期:code=40001
|
||||
[2017-10-16 20:54:56.548964] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:56.636969] INFO: jiekou: inputdata> 参数:, url:http://www.tuling123.com/openapi/api
|
||||
,返回:{'code': 40002, 'text': '有些话,难以说出口?'},预期:code=40002
|
||||
[2017-10-16 20:54:56.638969] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:56.844981] INFO: jiekou: inputdata> 参数:, url:https://api.douban.com/v2/photo/:id ,返回:{'msg': 'uri_not_found', 'code': 1001, 'request': 'POST /v2/photo/:id'},预期:code=1001&msg=uri_not_found
|
||||
[2017-10-16 20:54:56.846981] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-10-16 20:54:56.888984] INFO: jiekou: 当前模块 保存测试结果
|
||||
284
log/jiekou-2017-11-01-10.log
Normal file
284
log/jiekou-2017-11-01-10.log
Normal file
@@ -0,0 +1,284 @@
|
||||
[2017-11-01 10:06:23.188881] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:06:23.264885] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:06:23.264885] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:06:23.278886] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:06:23.278886] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:06:23.278886] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:06:23.311888] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:06:23.311888] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:06:23.312888] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:06:23.313888] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:06:23.313888] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:06:23.313888] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:06:23.343890] INFO: jiekou: 返回结果:{'code': 40002, 'text': '有啥事吗?'}
|
||||
[2017-11-01 10:06:23.343890] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:06:23.344890] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:06:23.344890] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:06:23.344890] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:06:23.344890] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:06:23.344890] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:07:06.760373] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:07:06.838377] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:07:06.838377] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:07:06.852378] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:06.853378] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:07:06.853378] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:07:06.886380] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:07:06.886380] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:07:06.886380] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:07:06.887380] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:06.887380] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:07:06.887380] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:07:06.920382] INFO: jiekou: 返回结果:{'code': 40002, 'text': '此时无声胜有声?'}
|
||||
[2017-11-01 10:07:06.920382] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:07:06.921382] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:07:06.921382] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:06.921382] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:07:06.921382] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:07:06.921382] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:07:20.637167] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:07:20.736172] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:07:20.737172] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:07:20.749173] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:20.749173] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:07:20.750173] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:07:20.789175] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:07:20.789175] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:07:24.632395] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:07:24.732401] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:07:24.733401] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:07:24.745401] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:24.746402] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:07:24.746402] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:07:24.785404] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:07:24.785404] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:07:53.710058] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:07:53.714058] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:53.715058] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:07:53.715058] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:07:53.748060] INFO: jiekou: 返回结果:{'code': 40002, 'text': '干哈呀?'}
|
||||
[2017-11-01 10:07:53.749060] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:07:56.700229] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:07:56.801235] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:07:56.801235] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:07:56.813236] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:07:56.814236] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:07:56.814236] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:07:56.849238] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:07:56.849238] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:08:04.610682] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:08:04.689686] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:08:04.689686] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:08:04.704687] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:08:04.704687] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:08:04.704687] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:08:04.738689] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:08:04.738689] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:08:04.738689] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:08:04.740689] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:08:04.740689] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:08:04.740689] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:08:04.776691] INFO: jiekou: 返回结果:{'code': 40002, 'text': '有啥事吗?'}
|
||||
[2017-11-01 10:08:04.776691] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:08:04.777691] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:08:04.777691] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:08:04.778691] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:08:04.778691] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:08:04.778691] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:20:30.384337] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:20:30.459342] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:20:30.459342] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:20:30.474343] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:20:30.474343] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:20:30.474343] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:20:30.513345] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:20:30.513345] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:20:30.514345] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:20:30.515345] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:20:30.515345] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:20:30.515345] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:20:30.544347] INFO: jiekou: 返回结果:{'code': 40002, 'text': '你想说什么就直说,不用藏在心里哈~'}
|
||||
[2017-11-01 10:20:30.544347] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:20:30.544347] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:20:30.545347] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:20:30.545347] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:20:30.545347] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:20:30.545347] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:01.846137] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:21:01.921141] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:21:01.921141] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:21:01.936142] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:01.936142] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:21:01.936142] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:21:01.972144] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:21:01.972144] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:21:01.973144] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:01.973144] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:01.974144] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:21:01.974144] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:21:02.003146] INFO: jiekou: 返回结果:{'code': 40002, 'text': 'what?'}
|
||||
[2017-11-01 10:21:02.003146] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:21:02.004146] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:02.005146] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:02.005146] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:21:02.005146] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:21:02.006146] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:44.590582] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:21:44.667586] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:21:44.667586] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:21:44.682587] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:44.682587] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:21:44.683587] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:21:44.717589] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:21:44.718589] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:21:44.718589] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:44.719589] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:44.719589] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:21:44.719589] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:21:44.755591] INFO: jiekou: 返回结果:{'code': 40002, 'text': '你想和我说什么呢?'}
|
||||
[2017-11-01 10:21:44.755591] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:21:44.756591] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:21:44.757591] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:21:44.757591] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:21:44.757591] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:21:44.757591] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:21.727138] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:23:21.806142] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:23:21.806142] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:23:21.821143] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:21.821143] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:23:21.821143] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:23:21.855145] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:23:21.855145] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:23:21.855145] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:21.856145] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:21.856145] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:23:21.857145] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:23:21.886147] INFO: jiekou: 返回结果:{'code': 40002, 'text': 'what?'}
|
||||
[2017-11-01 10:23:21.886147] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:23:21.886147] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:21.886147] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:21.887147] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:23:21.887147] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:23:21.887147] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:48.852689] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:23:48.928694] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:23:48.928694] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:23:48.943694] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:48.943694] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:23:48.943694] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:23:48.981697] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:23:48.981697] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:23:48.981697] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:48.982697] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:48.983697] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:23:48.983697] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:23:49.021699] INFO: jiekou: 返回结果:{'code': 40002, 'text': '干哈呀?'}
|
||||
[2017-11-01 10:23:49.021699] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:23:49.021699] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:23:49.022699] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:23:49.022699] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:23:49.022699] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:23:49.022699] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:24.567732] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:24:24.644736] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:24:24.644736] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:24:24.659737] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:24.659737] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:24:24.659737] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:24:24.694739] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:24:24.694739] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:24.694739] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:24.696739] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:24.696739] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:24:24.696739] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:24:24.728741] INFO: jiekou: 返回结果:{'code': 40002, 'text': '干啥呀?'}
|
||||
[2017-11-01 10:24:24.728741] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:24.728741] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:24.729741] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:24.729741] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:24:24.729741] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:24:24.729741] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:31.959155] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:24:32.040159] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:24:32.040159] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:24:32.054160] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:32.055160] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:24:32.055160] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:24:32.089162] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:24:32.090162] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:32.090162] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:32.091162] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:32.091162] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:24:32.091162] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:24:32.126164] INFO: jiekou: 返回结果:{'code': 40002, 'text': '有些话,难以说出口?'}
|
||||
[2017-11-01 10:24:32.127164] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:32.127164] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:32.127164] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:32.127164] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:24:32.128164] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:24:32.128164] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:40.651652] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:24:40.728656] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:24:40.728656] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:24:40.743657] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:40.743657] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:24:40.743657] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:24:40.777659] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:24:40.777659] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:40.777659] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:40.778659] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:40.778659] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:24:40.779659] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:24:40.814661] INFO: jiekou: 返回结果:{'code': 40002, 'text': '干啥呀?'}
|
||||
[2017-11-01 10:24:40.815661] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:24:40.815661] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:24:40.816661] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:24:40.816661] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:24:40.816661] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:24:40.817661] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:25:40.019048] INFO: jiekou: 当前模块 requests封装
|
||||
[2017-11-01 10:25:40.093052] INFO: jiekou: 当前模块 生成数据驱动所用数据
|
||||
[2017-11-01 10:25:40.094052] INFO: jiekou: 当前模块 解析测试用例文件
|
||||
[2017-11-01 10:25:40.109053] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.109053] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:25:40.109053] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:25:40.143055] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:25:40.143055] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:25:40.177057] INFO: jiekou: 返回结果:{'code': 40002, 'text': 'what?'}
|
||||
[2017-11-01 10:25:40.177057] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例执行完毕
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例执行完毕
|
||||
2
result.txt
Normal file
2
result.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
记录测试时间,测试总数,pass数量,失败数量 用‘=’拼接
|
||||
2017-10-16 20:54:56.323951=3=3=0
|
||||
32
run_excel_re.py
Normal file
32
run_excel_re.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# encoding: utf-8
|
||||
"""
|
||||
@author: lileilei
|
||||
@file: run_excel_re.py
|
||||
@time: 2017/6/9 12:45
|
||||
"""
|
||||
from Public.pyreport_excel import create
|
||||
import os,threading,datetime
|
||||
from testCase.case import testinterface
|
||||
from Public.emmail import sendemali
|
||||
from Public.get_excel import datacel
|
||||
from Public.create_report import save_result
|
||||
def start():
|
||||
starttime=datetime.datetime.now()
|
||||
m=datetime.datetime.now().strftime("%Y%m%d")
|
||||
basdir = os.path.abspath(os.path.dirname(__file__))
|
||||
listid,listkey,listconeent,listurl,listfangshi,listqiwang,listname=datacel()
|
||||
listrelust,list_fail, list_pass, list_json =testinterface()
|
||||
filepath = os.path.join(basdir + '\\test_Report\\%s-result.xls'%m)
|
||||
if os.path.exists(filepath) is False:
|
||||
os.system(r'touch %s' % filepath)
|
||||
save_result(starttime, len(listrelust), ((list_pass)), list_fail)
|
||||
create(filename=filepath,list_fail=list_fail, list_pass=list_pass, list_json=list_json, listurls=listurl,
|
||||
listkeys=listkey,listconeents=listconeent, listfangshis=listfangshi, listqiwangs=listqiwang,
|
||||
listids=listid, listrelust=listrelust, listnames=listname)
|
||||
def teThread():
|
||||
st = datetime.datetime.now()
|
||||
m = threading.Thread(target=start, args=())
|
||||
m.run()
|
||||
end = datetime.datetime.now()
|
||||
if __name__ == '__main__':
|
||||
teThread()
|
||||
34
run_html.py
Normal file
34
run_html.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Author : leizi
|
||||
import unittest,os,datetime,time
|
||||
from testCase.case import testinterface
|
||||
from Public.py_Html import createHtml
|
||||
from Public.get_excel import datacel
|
||||
from Public.emmail import sendemali
|
||||
from Public.create_report import save_result
|
||||
import threading
|
||||
def stast():
|
||||
starttime=datetime.datetime.now()
|
||||
day= time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
|
||||
basdir=os.path.abspath(os.path.dirname(__file__))
|
||||
listid, listkey, listconeent, listurl, listfangshi, listqiwang, listname = datacel()
|
||||
listrelust, list_fail, list_pass, list_json = testinterface()
|
||||
filepath =os.path.join(basdir+'\\test_Report\\%s-result.html'%day)
|
||||
if os.path.exists(filepath) is False:
|
||||
os.system(r'touch %s' % filepath)
|
||||
save_result(starttime,len(listrelust),((list_pass)),list_fail)
|
||||
endtime=datetime.datetime.now()
|
||||
createHtml(titles='接口测试报告',filepath=filepath,starttime=starttime,
|
||||
endtime=endtime,passge=list_pass,fail=list_fail,
|
||||
id=listid,name=listname,key=listkey,coneent=listconeent,url=listurl,meth=listfangshi,
|
||||
yuqi=listqiwang,json=list_json,relusts=listrelust)
|
||||
# sendemali(filepath)
|
||||
def tThread():
|
||||
m=threading.Thread(target=stast,args=())
|
||||
m.run()
|
||||
if __name__ == '__main__':
|
||||
tThread()
|
||||
|
||||
|
||||
|
||||
|
||||
15
run_new.py
Normal file
15
run_new.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Author : leizi
|
||||
from testCase.ddt_case import MyTest
|
||||
import unittest,time,os
|
||||
from Public import BSTestRunner
|
||||
if __name__=='__main__':
|
||||
suite = unittest.TestSuite()
|
||||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))
|
||||
now = time.strftime('%Y-%m%d', time.localtime(time.time()))
|
||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
file_dir = os.path.join(basedir, 'test_Report')
|
||||
file = os.path.join(file_dir, (now + '.html'))
|
||||
re_open = open(file, 'wb')
|
||||
runner = BSTestRunner.BSTestRunner(stream=re_open, title='接口测试报告', description='测试结果')
|
||||
runner.run(suite)
|
||||
20
testCase/ddt_case.py
Normal file
20
testCase/ddt_case.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from Interface.testFengzhuang import TestApi
|
||||
from Public.get_excel import datacel,makedata
|
||||
from Public.log import LOG,logger
|
||||
from Public.panduan import assertre
|
||||
import ddt,unittest,time,os
|
||||
data_test=makedata()
|
||||
@ddt.ddt
|
||||
class MyTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
LOG.info('测试用例开始执行')
|
||||
def tearDown(self):
|
||||
LOG.info('测试用例执行完毕')
|
||||
@ddt.data(*data_test)
|
||||
def test_api(self,data_test):
|
||||
api = TestApi(url=data_test['url'], key=data_test['key'], connent=data_test['coneent'], fangshi=data_test['fangshi'])
|
||||
LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s'%(data_test['url'],data_test['key'],data_test['coneent'], LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s'%(data_test['url'],data_test['key'],data_test['coneent'],data_test['fangshi']))))
|
||||
apijson = api.getJson()
|
||||
LOG.info('返回结果:%s'%apijson)
|
||||
qingwang=assertre(asserqingwang=data_test['qiwang'])
|
||||
self.assertNotEqual(dict(qingwang),dict(apijson),msg='预期和返回不一致')
|
||||
306
test_Report/2017-1101.html
Normal file
306
test_Report/2017-1101.html
Normal file
@@ -0,0 +1,306 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cn">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>接口测试报告</title>
|
||||
<meta name="generator" content="BSTestRunner 0.8.4"/>
|
||||
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
|
||||
|
||||
<style type="text/css" media="screen">
|
||||
|
||||
/* -- css div popup ------------------------------------------------------------------------ */
|
||||
.popup_window {
|
||||
display: none;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
/*border: solid #627173 1px; */
|
||||
padding: 10px;
|
||||
background-color: #99CCFF;
|
||||
font-family: "Lucida Console", "Courier New", Courier, monospace;
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
width: 1200px;
|
||||
}
|
||||
|
||||
/* -- report ------------------------------------------------------------------------ */
|
||||
|
||||
#show_detail_line .label {
|
||||
font-size: 85%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#show_detail_line {
|
||||
margin: 2em auto 1em auto;
|
||||
}
|
||||
|
||||
#total_row { font-weight: bold; }
|
||||
.hiddenRow { display: none; }
|
||||
.testcase { margin-left: 2em; }
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<script language="javascript" type="text/javascript"><!--
|
||||
output_list = Array();
|
||||
|
||||
/* level - 0:Summary; 1:Failed; 2:All */
|
||||
function showCase(level) {
|
||||
trs = document.getElementsByTagName("tr");
|
||||
for (var i = 0; i < trs.length; i++) {
|
||||
tr = trs[i];
|
||||
id = tr.id;
|
||||
if (id.substr(0,2) == 'ft') {
|
||||
if (level < 1) {
|
||||
tr.className = 'hiddenRow';
|
||||
}
|
||||
else {
|
||||
tr.className = '';
|
||||
}
|
||||
}
|
||||
if (id.substr(0,2) == 'pt') {
|
||||
if (level > 1) {
|
||||
tr.className = '';
|
||||
}
|
||||
else {
|
||||
tr.className = 'hiddenRow';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function showClassDetail(cid, count) {
|
||||
var id_list = Array(count);
|
||||
var toHide = 1;
|
||||
for (var i = 0; i < count; i++) {
|
||||
tid0 = 't' + cid.substr(1) + '.' + (i+1);
|
||||
tid = 'f' + tid0;
|
||||
tr = document.getElementById(tid);
|
||||
if (!tr) {
|
||||
tid = 'p' + tid0;
|
||||
tr = document.getElementById(tid);
|
||||
}
|
||||
id_list[i] = tid;
|
||||
if (tr.className) {
|
||||
toHide = 0;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < count; i++) {
|
||||
tid = id_list[i];
|
||||
if (toHide) {
|
||||
document.getElementById('div_'+tid).style.display = 'none'
|
||||
document.getElementById(tid).className = 'hiddenRow';
|
||||
}
|
||||
else {
|
||||
document.getElementById(tid).className = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function showTestDetail(div_id){
|
||||
var details_div = document.getElementById(div_id)
|
||||
var displayState = details_div.style.display
|
||||
// alert(displayState)
|
||||
if (displayState != 'block' ) {
|
||||
displayState = 'block'
|
||||
details_div.style.display = 'block'
|
||||
}
|
||||
else {
|
||||
details_div.style.display = 'none'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function html_escape(s) {
|
||||
s = s.replace(/&/g,'&');
|
||||
s = s.replace(/</g,'<');
|
||||
s = s.replace(/>/g,'>');
|
||||
return s;
|
||||
}
|
||||
|
||||
/* obsoleted by detail in <div>
|
||||
function showOutput(id, name) {
|
||||
var w = window.open("", //url
|
||||
name,
|
||||
"resizable,scrollbars,status,width=800,height=450");
|
||||
d = w.document;
|
||||
d.write("<pre>");
|
||||
d.write(html_escape(output_list[id]));
|
||||
d.write("\n");
|
||||
d.write("<a href='javascript:window.close()'>close</a>\n");
|
||||
d.write("</pre>\n");
|
||||
d.close();
|
||||
}
|
||||
*/
|
||||
--></script>
|
||||
|
||||
<div class="container">
|
||||
<div class='heading'>
|
||||
<h1>接口测试报告</h1>
|
||||
<p><strong>Start Time:</strong> 2017-11-01 10:25:40</p>
|
||||
<p><strong>Duration:</strong> 0:00:00.070004</p>
|
||||
<p><strong>Status:</strong> <span class="text text-success">Pass <strong>2</strong></span> <span class="text text-warning">Error <strong>1</strong></span></p>
|
||||
|
||||
<p class='description'>测试结果</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<p id='show_detail_line'>
|
||||
<span class="label label-primary" onclick="showCase(0)">Summary</span>
|
||||
<span class="label label-danger" onclick="showCase(1)">Failed</span>
|
||||
<span class="label label-default" onclick="showCase(2)">All</span>
|
||||
</p>
|
||||
<table id='result_table' class="table">
|
||||
<thead>
|
||||
<tr id='header_row'>
|
||||
<th>Test Group/Test case</td>
|
||||
<th>Count</td>
|
||||
<th>Pass</td>
|
||||
<th>Fail</td>
|
||||
<th>Error</td>
|
||||
<th>View</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr class='text text-warning'>
|
||||
<td>testCase.ddt_case.MyTest</td>
|
||||
<td>3</td>
|
||||
<td>2</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c1',3)">Detail</a></td>
|
||||
</tr>
|
||||
|
||||
<tr id='pt1.1' class='hiddenRow'>
|
||||
<td class='text text-success'><div class='testcase'>test_api_1</div></td>
|
||||
<td colspan='5' align='center'>
|
||||
|
||||
<!--css div popup start-->
|
||||
<a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_pt1.1')" >
|
||||
pass</a>
|
||||
|
||||
<div id='div_pt1.1' class="popup_window">
|
||||
<div style='text-align: right;cursor:pointer'>
|
||||
<a onfocus='this.blur();' onclick="document.getElementById('div_pt1.1').style.display = 'none' " >
|
||||
[x]</a>
|
||||
</div>
|
||||
<pre>
|
||||
|
||||
pt1.1: [2017-11-01 10:25:40.109053] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.109053] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:POST
|
||||
[2017-11-01 10:25:40.109053] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api,key:aaaa,参数:sasa,请求方式:None
|
||||
[2017-11-01 10:25:40.143055] INFO: jiekou: 返回结果:{'code': 40001, 'text': '亲爱的,key不对哦。'}
|
||||
[2017-11-01 10:25:40.143055] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 测试用例执行完毕
|
||||
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id='pt1.2' class='hiddenRow'>
|
||||
<td class='text text-success'><div class='testcase'>test_api_2</div></td>
|
||||
<td colspan='5' align='center'>
|
||||
|
||||
<!--css div popup start-->
|
||||
<a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_pt1.2')" >
|
||||
pass</a>
|
||||
|
||||
<div id='div_pt1.2' class="popup_window">
|
||||
<div style='text-align: right;cursor:pointer'>
|
||||
<a onfocus='this.blur();' onclick="document.getElementById('div_pt1.2').style.display = 'none' " >
|
||||
[x]</a>
|
||||
</div>
|
||||
<pre>
|
||||
|
||||
pt1.2: [2017-11-01 10:25:40.144055] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:POST
|
||||
[2017-11-01 10:25:40.144055] INFO: jiekou: 输入参数:url:http://www.tuling123.com/openapi/api
|
||||
,key:dfeb1cc8125943d29764a2f2f5c33739,参数:,请求方式:None
|
||||
[2017-11-01 10:25:40.177057] INFO: jiekou: 返回结果:{'code': 40002, 'text': 'what?'}
|
||||
[2017-11-01 10:25:40.177057] INFO: jiekou: 当前模块 断言测试结果
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例执行完毕
|
||||
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id='ft1.3' class='none'>
|
||||
<td class='text text-warning'><div class='testcase'>test_api_3</div></td>
|
||||
<td colspan='5' align='center'>
|
||||
|
||||
<!--css div popup start-->
|
||||
<a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.3')" >
|
||||
error</a>
|
||||
|
||||
<div id='div_ft1.3' class="popup_window">
|
||||
<div style='text-align: right;cursor:pointer'>
|
||||
<a onfocus='this.blur();' onclick="document.getElementById('div_ft1.3').style.display = 'none' " >
|
||||
[x]</a>
|
||||
</div>
|
||||
<pre>
|
||||
|
||||
ft1.3: [2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例开始执行
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:GET
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 输入参数:url:https://api.douban.com/v2/photo/:id,key:,参数:,请求方式:None
|
||||
[2017-11-01 10:25:40.178057] INFO: jiekou: 测试用例执行完毕
|
||||
Traceback (most recent call last):
|
||||
File "C:\Users\Administrator\AppData\Roaming\Python\Python36\site-packages\ddt.py", line 139, in wrapper
|
||||
return func(self, *args, **kwargs)
|
||||
File "C:\Users\Administrator\Desktop\jiekou-python3\testCase\ddt_case.py", line 17, in test_api
|
||||
apijson = api.getJson()
|
||||
File "C:\Users\Administrator\Desktop\jiekou-python3\Interface\testFengzhuang.py", line 27, in getJson
|
||||
json_data = self.testapi()
|
||||
File "C:\Users\Administrator\Desktop\jiekou-python3\Interface\testFengzhuang.py", line 21, in testapi
|
||||
response = reques.get(self.url,self.parem)
|
||||
TypeError: get() takes 2 positional arguments but 3 were given
|
||||
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr id='total_row'>
|
||||
<td>Total</td>
|
||||
<td>3</td>
|
||||
<td class="text text-success">2</td>
|
||||
<td class="text text-danger">0</td>
|
||||
<td class="text text-warning">1</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<div id='ending'> </div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
test_Report/20171016-result.xls
Normal file
BIN
test_Report/20171016-result.xls
Normal file
Binary file not shown.
86
test_Report/201710162054-result.html
Normal file
86
test_Report/201710162054-result.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>接口测试报告</title>
|
||||
<style type="text/css">
|
||||
td{ width:40px; height:50px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style='width: 1170px;margin-left: 15%'>
|
||||
<h1>接口测试的结果</h1>
|
||||
<p><strong>开始时间:</strong> 2017-10-16 20:54:47.323436</p>
|
||||
<p><strong>结束时间:</strong> 2017-10-16 20:54:48.234489</p>
|
||||
<p><strong>耗时:</strong> 0:00:00.911053</p>
|
||||
<p><strong>结果:</strong>
|
||||
<span >Pass: <strong >3</strong>
|
||||
Fail: <strong >0</strong>
|
||||
</span></p>
|
||||
<p ><strong>测试详情如下</strong></p> </div>
|
||||
|
||||
|
||||
<p> </p>
|
||||
<table border='2'cellspacing='1' cellpadding='1' width='1100'align="center" >
|
||||
<tr >
|
||||
<td ><strong>用例ID </strong></td>
|
||||
<td><strong>用例名字</strong></td>
|
||||
<td><strong>key</strong></td>
|
||||
<td><strong>请求内容</strong></td>
|
||||
<td><strong>url</strong></td>
|
||||
<td><strong>请求方式</strong></td>
|
||||
<td><strong>预期</strong></td>
|
||||
<td><strong>实际返回</strong></td>
|
||||
<td><strong>结果</strong></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>1.0</td>
|
||||
<td>图灵api接口</td>
|
||||
|
||||
<td>aaaa</td>
|
||||
<td>sasa
|
||||
</td>
|
||||
<td>http://www.tuling123.com/openapi/api</td>
|
||||
<td>POST</td>
|
||||
<td>code=40001</td>
|
||||
<td>{'code': 40001, 'text': '亲爱的,key不对哦。'}</td>
|
||||
<td bgcolor="green">pass</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>2.0</td>
|
||||
<td>图灵api接口</td>
|
||||
|
||||
<td>dfeb1cc8125943d29764a2f2f5c33739</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>http://www.tuling123.com/openapi/api
|
||||
</td>
|
||||
<td>POST</td>
|
||||
<td>code=40002</td>
|
||||
<td>{'code': 40002, 'text': '有啥事吗?'}</td>
|
||||
<td bgcolor="green">pass</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>3.0</td>
|
||||
<td>豆瓣api</td>
|
||||
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
<td>https://api.douban.com/v2/photo/:id</td>
|
||||
<td>GET</td>
|
||||
<td>code=1001&msg=uri_not_found</td>
|
||||
<td>{'msg': 'uri_not_found', 'code': 1001, 'request': 'POST /v2/photo/:id'}</td>
|
||||
<td bgcolor="green">pass</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
BIN
test_case/case.xlsx
Normal file
BIN
test_case/case.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user