接口测试用例模板Excel
excel用例接口自动化

excel⽤例接⼝⾃动化要求:根据excel中的测试⽤例,执⾏接⼝测试,并将结果录⼊excel,邮件发送给相关⼈思路如下:1.读取excel,保存测试⽤例中的内容2.根据excel中的请求url,method,data,调⽤接⼝,并保存返回报⽂3.读取返回报⽂,和检查点对⽐,不⼀致则不通过,⼀致则通过,并保存测试结果4.将测试结果和保存报⽂写⼊excel中5.测试结束后将excel变成附件发邮件需要⽤到xlrd,openpyxl,requests,json模块这是excelway,py⽂件,将读取excel⽤例和修改写⼊测试结果和返回报⽂的函数放在这个⽂件⾥import xlrd,openpyxl,jsondef readExcel(excel_path):'''读取excel表中测试⽤例的函数:param excel_path: 传⼊excel⽂件路径:return: 返回该excel中第⼀个sheet中全部的测试⽤例'''try:book = xlrd.open_workbook(excel_path) #打开excelexcept Exception as e:print('excel路径错误或⽂件⽆法打开')else:sheet = book.sheet_by_index(0) #取第⼀个sheet页all_test_cases = []for row_num in range(1,sheet.nrows): #从第2⾏开始获取所有⾏excel内容row=sheet.row_values(row_num)all_test_cases.append(row) #将excel的每⼀条测试⽤例添加到all_test_casesreturn all_test_casesdef updateExcel(excel_path,result_list,responses_list):book = openpyxl.load_workbook(excel_path)sheet = book.activefor col8 in range(len(result_list)): #将测试结果写⼊第⼋列sheet.cell(col8+2,8,result_list[col8])for col9 in range(len(responses_list)): #将返回报⽂写⼊第九列sheet.cell(col9+2,9,json.dumps(responses_list[col9],ensure_ascii=False))book.save(excel_path)这是HttpRequest.py⽂件,将post、get请求的操作放在这个⽂件下,定义为⼀个类import requestsclass MyRequest:def__init__(self,url,method='get',data=None,headers=None,is_json=False):method = method.lower()self.url = urlself.data = dataself.headers = headersself.is_json = is_jsonif hasattr(self,method):getattr(self,method)()def get(self):try:req = requests.get(self.url,self.data,headers=self.headers).json()except Exception as e:self.response = {"error":"接⼝请求出错%s"%e}else:self.response = reqdef post(self):try:if self.is_json:req = requests.post(self.url,json=self.data,headers=self.headers).json()else:req = requests.post(self.url, self.data, headers=self.headers).json()except Exception as e:self.response = {"error": "接⼝请求出错%s" % e}else:self.response = req这是mail.py⽂件,将发送邮件的函数放⼊⽂件中import yagmaildef send_mail():smtp = yagmail.SMTP(host='',user='xxx@',password='xxxxx',)smtp.send(to='xxxx@',cc='xxxx@',subject='测试报告',contents='请查收测试报告',attachments=[r'C:\Users\ght\PycharmProjects\untitled\homework\testcase.xlsx'] )send_mail()接⼝⾃动化脚本如下,执⾏脚本时,需导⼊excelway,HttpRequest,mail import excelwayimport HttpRequestimport mailimport json,threadpooldef get_data_dic(data):'''将测试⽤例中传⼊参数data'a=sdaf,b=1'这样格式的字符串转化为字典{'a':'1','b':'2'}:param data:传⼊测试数据,格式为a=1,b=2:return:返回字典格式'''str1 = []data_list = data.split(',')for d in data_list:str1.append(d.split('='))return dict(str1)def res_check(res,res_check):'''⽐对接⼝返回值是否和预期结果⼀致,⼀致则返回“通过”,不⼀致则返回“失败”:param res: 接⼝返回数据:param res_check: 检查值:return: 测试结果通过或不通过'''res =json.dumps(res,ensure_ascii=False) #字典转化为字符串res = res.replace('": "',"=").replace('": ',"=") #格式转换为a=1,b=2这样,⽅便与检查点匹配 res_check = res_check.split(',')for r in res_check:if r in res:passelse:return'失败'return'通过'def interfaceTest(all_test_cases):'''将测试⽤例逐条执⾏,获得返回报⽂和测试结果,并传⼊updateExcel函数:param all_test_cases: 传⼊所有的测试⽤例的list'''responses_list = [] #存返回报⽂的listresult_list =[] #存测试结果的listfor case in all_test_cases:try:test_project = case[0]test_module = case[1]url = case[2]method = case[3]data = get_data_dic(case[4])test_description = case[5]test_check = case[6]except Exception as e:return('测试⽤例格式不正确%s'%e)else:response = HttpRequest.MyRequest(url=url,method=method,data=data).response responses_list.append(response)res = res_check(response,test_check) #判断返回结果符合检查点if'通过'in res:result_list.append('通过')else:result_list.append('失败')excelway.updateExcel(excel_path, result_list, responses_list)if__name__ == '__main__':excel_path = 'testcase.xlsx'all_test_cases = excelway.readExcel(excel_path)interfaceTest(all_test_cases)mail.send_mail()print('完成')。
接口测试用例和接口测试模板

接⼝测试⽤例和接⼝测试模板简介 当今社会在测试领域,接⼝测试已经越来越多的被提及,被重视,⽽且现在好多招聘信息要对接⼝测试提出要求。
区别于传统意义上的系统级别测试,很多测试⼈员在接触到接⼝测试的时候,也许对测试执⾏还可以⽐较顺利的上⼿,但⼀提到相关的⽂档,⽐如测试⽤例和报告,就有些不知所措了。
这类问题在我加⼊的⼏个测试的群⾥,经常看到⼀些⼈在不断提问。
今天就⽤这篇⽂章来说说接⼝测试⽤例和报告。
接⼝功能测试⽤例模板 提到功能测试⽤例,我们知道,其中最重要的两个要素就是: 测试步骤 预期结果 其实对于接⼝功能测试也同样如此;接⼝测试的步骤中,最重要的是将实现向接⼝发送预设请求,结果则要关注响应信息及后续处理。
所以接⼝功能测试⽤例编排可以考虑下列两种形式: 接⼝其他⽅⾯测试⽤例模板: 要特别注意的是,实际⼯作场景中我们可能还会对接⼝之间的串联和混合场景进⾏测试。
就是上⼀个接⼝返回的数据有可能作为后边的接⼝的参数传⼊后边的接⼝。
测试报告模板 测试报告是指把测试的过程和结果写成⽂档,对发现的问题和缺陷进⾏分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。
测试报告是测试阶段最后的⽂档产出物。
优秀的测试经理或测试⼈员应该具备良好的⽂档编写能⼒。
接⼝测试报告很多时候会和接⼝性能测试报告⼀起,如果要单独报告的话,可以考虑以下内容:01 系统接⼝概况 简要描述与测试项⽬相关的⼀些背景资料,如被测系统简介,项⽬上线计划等。
对于系统接⼝的定义和设计做出介绍。
⽐如系统⼀共有多少个接⼝?采⽤哪种协议?都涉及到哪些发送⽅法?采⽤怎样的请求格式?使⽤怎样的返回标准?可⽤表格说明。
02 测试⽬的与范围 描述本次接⼝测试的⽬的、范围与⽬标,内容应与本次接⼝测试的《接⼝测试实施⽅案》中的对应内容保持⼀致。
测试⽬的 本测试报告的具体编写⽬的,指出预期的读者范围。
实例:本测试报告为XXX项⽬的测试报告,⽬的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能⽬标)。
测试用例模板

实际结果
视频图像切换正常,流畅,清晰
丝印正常,布线正常,插口等正常
正常登录 正常显示
确定接收到强配的IP地址且打开WEB网页后运行状态与网络参 数显示正确 正常发起,可视终端呼叫时,没有接通之前可以看到对方视频, 接通后视频与声音正常 1、对方接听,实现全双工对讲,默认本地扬声器输出,咪头输 入,声音与视频正常,不能切换视频。 2、对方拒绝,直接返回“目标正忙”,之后挂断。 3、对方无响应时,10次响铃后自动挂断 4、对方正忙,直接返回“目标正忙”,之后挂断。 正常接受,可视终端呼叫时,没有接通之前可以看到对方视频, 接通后视频与声音正常 转移后8530HV自动挂断,主呼终端呼叫转移终端 通话三方均能听到其它两方的声音,声音清晰正常 可以正常对讲,显示主呼SIP号码,且视频正常。 (8530HV需接通后才能看到对方视频) 通话声音正常,呼叫目标是可视设备时视频正常。 (8530HV需接通后才能看到对方视频)
触发开门 81 82 83 84 面板切换 音量调节 查看本地视频
其他
85 文件播放
86
8530HV在对讲或是广播时,插入线路输入线路输 出,或是提起听筒,提起听筒时声音自动切换到听筒 听筒输入输出自动切换 输入输出,放下时恢复到本地,如果有接线路输入输 出,声音优先线路输入输出 线路输入输出自动切换 8530HV在对讲或是广播时,插入线路输入设备或者 线路输出设备。声音自动从线路输入或者线路输出。 按信息键输入密码后进入系统设置界面点扩展板升级 。扩展板显示正在升级,并且1分钟以后升级成功后按 扩展板任意键扩展板可显示终端列表信息。一次只能 升级一块扩展板,注意扩展版号必须为1 在扩展板配置中设置ID填入对应的SIP号码,功能勾选 SIP。最多可连接4块面板。 在web页-脱机参数中设置扩展板快捷脱机对讲对应终 端IP(快捷拨号勾选内通) 短路输出为低电平时,输出一直是闭合的,当SIP对讲 按*触发时,输出150ms的高电平(断开);当勾选高 电平时相反。 1.分别测试中文、繁体、英文、字符 2.测试字符兼容性 1.未连接网线-长灭 2.作为被叫时--两颗灯快闪 3.作为主叫时---呼叫灯快闪 4.接受广播时---常亮 1.按键灯慢闪(对方未接听时) 2.扬声器回铃音播放正常 3.建立通话后麦克风拾音正常
接口测试用例模板Excel

SoapUI正确加载服务(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
场景3说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
场景2说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据能够正确沉淀
【返回目录】
编写人员
场景1说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据能够正确沉淀
详细步骤描述 测试数据要求
SoapUI正确加载服务(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
务编码和操作编码,需全部大写,编号由2位组
确沉淀
期望执行结果
务编码和操作编码,需全部大写,编号由2位组
确沉淀
期望执行结果
务编码和操作编码,需全部大写,编号由2位组
确沉淀
期望执行结果
(完整版)接口测试用例

通过
20
用户信息为空
用户信息<user>为空,为null;组织信息不为空,不为null。
无法返回正确结果。
符合预期结果
通过
备注
7.2 应用系统同步用户接口
7.2.1
编制人
薛郝
审定人
时间
用例名称
接口名称
项目名称
C919大型客机客户服务应用系统集成平台
编号/版本
参考信息
C919大型客机客户服务应用系统集成平台详细设计V2.1
符合预期结果
通过
16
正确在多个指定组织下添加同一个用户
输入所有必填字段。
1.用户信息<user>不为空,不为null;
2.需要添加的多个组织信息<org>不为空,不为null。
返回正确结果;数据库中更新组织信息正确。
符合预期结果
通过
17
用户信息为空
用户信息<user>为空,为null;组织信息不为空,不为null。
5.组织排序位<orderNum>不为空,不为null。
返回正确结果;数据库中更新组织信息正确。
符合预期结果
通过
10
组织编号为空
组织编号<orgCode>为空,为null;其他四项不为空,不为null。
无法返回正确结果。
符合预期结果
通过
11
组织名称为空
组织名称<orgName>为空,为null;其他四项不为空,不为null。
接口测试用例
7.1 总部用户同步接口
7.1.1
编制人
薛郝
审定人
时间
用例名称
自动化PYTHON接口自动化测试--使用EXCEL进行测试用例执行与测试结果写入

⾃动化PYTHON接⼝⾃动化测试--使⽤EXCEL进⾏测试⽤例执⾏与测试结果写⼊1.为了更好的实现读取excel⽂件进⾏接⼝⾃动化测试,将操作excel⽂件⽅法封装:1. # coding:utf-82. import xlrd3. from xlutils.copy import copy # 导⼊xlutils的copy⽅法4.5. class HandleExcel:6. """封装操作excel的⽅法"""7. def __init__(self, file='E:/PyChram项⽬集合/interfacetest/excel/30.xls', sheet_id=0):8. self.file = file9. self.sheet_id = sheet_id10. self.data = self.get_data()11. # 为了在创建⼀个实例时就获得excel的sheet对象,可以在构造器中调⽤get_data()12. # 因为类在实例化时就会⾃动调⽤构造器,这样在创建⼀个实例时就会⾃动获得sheet对象了13.14. # 获取某⼀页sheet对象15. def get_data(self):16. data = xlrd.open_workbook(self.file)17. sheet = data.sheet_by_index(self.sheet_id)18. return sheet19.20. # 获取excel数据⾏数21. def get_rows(self):22. rows = self.data.nrows23. # t = self.get_data() # 调⽤get_data()取得sheet对象(如果不在构造器获取sheet对象,就需要在⽅法内先获取sheet对象,再进⾏下⼀步操作,每个⽅法都要这样,所以还是写在构造器中⽅便)24. # rows = t.nrows25. return rows26.27. # 获取某个单元格数据28. def get_value(self, row, col):29. value = self.data.cell_value(row, col)30. return value31.32. # 向某个单元格写⼊数据33. def write_value(self, row, col, value):34. data = xlrd.open_workbook(self.file) # 打开⽂件35. data_copy = copy(data) # 复制原⽂件36. sheet = data_copy.get_sheet(0) # 取得复制⽂件的sheet对象37. sheet.write(row, col, value) # 在某⼀单元格写⼊value38. data_copy.save(self.file) # 保存⽂件39.40. # 封装excel的列名常量41. def get_caseseq():42. """获取caseSeq"""43. caseSeq = 044. return caseSeq45.46.47. def get_apitype():48. """获取apiType"""49. apiType = 150. return apiType51.52.53. def get_apiseq():54. """获取apiSeq"""55. apiSeq = 256. return apiSeq57.58.59. def get_apiName():60. """获取apiName"""61. apiName = 362. return apiName63.64.65. def get_priority():66. """获取priority"""67. priority = 468. return priority69.70.71. def get_url():72. """获取url"""73. url = 574. return url75.76.77. def get_method():78. """获取method"""79. method = 680. return method81.82.83. def get_header():84. """获取header"""85. header = 786. return header87.88.89. def get_purpose():90. purpose = 891. return purpose92.93.94. def get_params():95. """获取params"""96. params = 997. return params98.99.100. def get_expectvalue():101. """获取expectValue"""102. expect = 10103. return expect104.105. def get_resultvalue():106. result = 11107. return result108.109. if __name__ == '__main__':110. test = HandleExcel()111. print(test.get_data())112. print(test.get_rows())113. print(test.get_value(0, 0))2.将操作excel的⽅法封装好后,准备接⼝⽤例来遍历循环其中:caseSeq:⽤例编号apiType:接⼝类型apiSeq:接⼝编号apiName:接⼝名称priority:优先级url:接⼝调⽤地址method:协议⽅法header:请求头purpose:⽤例描述params:接⼝参数expectValue:期望结果resultValue:测试结果3.编写主函数代码,实现接⼝⽤例遍历并将测试结果写⼊excel表中1. # coding:utf-82.3. from mylib.run_method import RunMain4. from mylib.handle_excel import *5. import json6.7. class RunTestCase:8. def __init__(self):9. self.Runmain = RunMain() # 实例化调⽤get/post请求基类10. self.data = HandleExcel() # 实例化操作excel⽂件类11.12. def go_run(self):13. rows_count = self.data.get_rows() # 获取excel⾏数14. for i in range(1,rows_count): # 利⽤⾏数进⾏迭代处理每个接⼝15. url = self.data.get_value(i, get_url()) # 循环获取url的值16. print(url)17. method = self.data.get_value(i, get_method()) # 循环获取method的值18. print(method)19. if self.data.get_value(i, get_params()) == '':20. data = None21. else:22. data = json.loads(self.data.get_value(i, get_params())) # 循环获取请求参数,并将得到的数据反序列23. expect = self.data.get_value(i, get_expectvalue()) # 循环获取期望输出24. is_run = self.data.get_value(i, get_priority()) # 获取是否运⾏,即判断excel中priority是不是"H"25. if is_run == 'H':26. res = self.Runmain.run_main(url, method, data) # 调⽤get/post主函数27. print(res)28. if expect in res:29. print('测试成功')30. self.data.write_value(i, get_resultvalue(), 'pass')31. else:32. print('测试失败')33. self.data.write_value(i, get_resultvalue(), 'fail')34.35. if __name__ == '__main__':36. run = RunTestCase()37. run.go_run()运⾏结果如下:excel表格中填⼊如下:本篇简单的使⽤excel进⾏接⼝测试⽤例的执⾏,在测试过程中最重要的是测试⽤例的编写,在遇到不同的测试⽤例执⾏时会出现不同的问题,还需要多使⽤多练习,按照实际进⾏Python接⼝⾃动化测试⽤例编写。
接口测试用例报告模板

注:1.一个模块对应一个Excel表 2.一条接口对应一张sheet表 3.表中一行对应一条测试用例
2.4 测试记录及结果分析
2.4.1. 单场景接口测试
测试结果数据
给出本次单场景接口测试的测试结果数据
结合测试中发现的问题对于整体测试结果进行分析,做出判断。
l 接口业务功能错误类缺陷情况
l 接口异常处理类缺陷情况
l 接口处理数据沉淀缺陷类情况
l 接口安全性缺陷情况
2.4.2. 混合场景接口测试2.4.2.1. 测试结果数据用例
场景描述
被测接口/user/login /commodity/search /commodity/pdp /user/login /user/personalInfo /user/personalInfo/portrait /upload ......2.5 测试结论
2.4.2.2. 测试问题及结果分析
结合测试中发现的问题对于整体测试结果进行分析,做出判断。
l 混合接口业务功能错误类缺陷情况;
l 混合接口业务数据传递类缺陷情况;
给出本次接口测试的测试总结论,一般以测试结果与测试目标的比较结果作为测试结论
APIm002
用户登录、修改个人信息、上传头像 给出本次混合场景接口测试的测试结果数据APIm001
用户登录、搜索、查看详情
测试结果备注
结论失败通过。
Python接口测试之Excel表格数据操作方法封装

Python接⼝测试之Excel表格数据操作⽅法封装 引⾔ 我们在做接⼝测试,经常会⽤到excel去管理测试数据,对Excel的操作⽐较频繁,那么使⽤python如何操作Excel⽂件的读与写呢?由于之前讲的都是⼤的框框,没有讲这么⼩的模块使⽤,现在就化整为0的讲解。
读写模块介绍 python有三个模块是对Excel⽂件的操作,分别是:openpyxl,xlrd和xlwt。
下⾯简单的介绍⼀下各个模块的特点及使⽤案例。
xlrd xlrd是⽤来从Excel中读写数据的,但我平常只⽤它进⾏读操作,写操作会遇到些问题。
⽤xlrd进⾏读取⽐较⽅便,流程和平常⼿动操作Excel⼀样,打开⼯作簿(Workbook),选择⼯作表(sheets),然后操作单元格(cell)。
下⾯举个例⼦,例如要打开当前⽬录下名为”data.xlsx”的Excel⽂件,选择第⼀张⼯作表,然后读取第⼀⾏的全部内容并打印出来。
Python代码如下:import osimport xlrdfrom xlutils.copy import copy# 获取当前⽂件的绝对路径curPath = os.path.abspath(os.path.dirname(__file__))print(curPath)# 获取项⽬根⽬录rootPath = os.path.abspath(os.path.dirname(curPath))print(rootPath)# 获取⽂件路径file_path = r'APItest_ddt\data\data.xls'file_path = os.path.join(rootPath,file_path)print(file_path)#打开excel⽂件data=xlrd.open_workbook(file_path)#获取第⼀张⼯作表(通过索引的⽅式)table=data.sheets()[0]#data_list⽤来存放数据data_list=[]#将table中第⼀⾏的数据读取并添加到data_list中data_list.extend(table.row_values(0))#打印出第⼀⾏的全部数据for item in data_list:print(item)# 写⼊数据copy_data = copy(data)# 读取复制的excel的sheet页copy_data_to_sheet = copy_data.get_sheet(0)# 通过get_sheet()获取的sheet有write()⽅法,写⼊数据copy_data_to_sheet.write(5,5,"这是我写⼊的测试数据:哈哈")# 保存数据copy_data.save(file_path)运⾏结果:C:\Users\Administrator\Desktop\APItest_ddtC:\Users\Administrator\DesktopC:\Users\Administrator\Desktop\APItest_ddt/data/data.xls地址打开data.xls⽂件:在处理excel数据时发现了xlwt的局限性–不能写⼊超过65535⾏、256列的数据(因为它只⽀持Excel 2003及之前的版本,在这些版本的Excel中⾏数和列数有此限制),这对于实际应⽤还是不够的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SoapUI正确加载服务(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
场景3说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据能够正确沉淀
详细步骤描述 测试数据要求
SoapUI正确加载服务(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
场景2说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据能够正确沉淀
【返回目录】
编写人员
场景1说明
测试用例编号 测试用例类型 简要描述 数据准备 测试要点 详细步骤编号 1 2 2.1 2.2 3 3.1 3.2
服务名_操作名_01(服务名、操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组 正常 说明准备什么样的数据 返回报文符合规范要求,有数据沉淀的数据能够正确沉淀
详细步骤描述 测试数据要求
SoapUI正确加载服务(wsdl) 测试要点1 要点1的具体步骤 测试要点2 要点2的具体步骤
务编码和操作编码,需全部大写,编号由2位组
Байду номын сангаас
确沉淀
期望执行结果
务编码和操作编码,需全部大写,编号由2位组
确沉淀
期望执行结果
务编码和操作编码,需全部大写,编号由2位组
确沉淀
期望执行结果