python实现接口测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
刚进一个新公司,可能要做接口测试,没有用过工具,抄了几行代码,根据自己的理解整理一下,供自己以后学习备用
贴上源码,也希望感兴趣的朋友一起讨论,mail: lnbcc0727@
使用说明:1.XML可以根据需要,组织测试案例,
2.EXCEL除了预期结果列要写上预期之外,其它列不用填写
3.源码实现执行XML案例,然后与EXCEL中预期做对比,最后将测试结果写入
EXCEL中(执行案例时不要打开EXCEL,以免影响写入操作)
一、XML案例源码(casedata.xml)
detail="每一个operation是一种接口,可增加Operation 在一个脚本中执行多个接口测试" url="https:///" action="post"> ...... ......
........
>
二、保存结果的EXCEL(WebServiceCases.xlsx)
三、python源码:
import requests
from xml.dom.minidom import parse
from openpyxl.reader.excel import load_workbook
# 读取XML案例和存有结果的excel
AUTO_RESULT=u"WebServiceCases.xlsx"
case_file=open(u"casedata.xml","rb")
tree=parse(file=case_file)
collection=tree.documentElement
operation_list=collection.getElementsByTagName("Operation")
print(operation_list)
book=load_workbook(AUTO_RESULT)
print(book)
sheet_names=book.get_sheet_names()
print(sheet_names)
working_sheet=book.get_sheet_by_name(sheet_names[0])
print (working_sheet)
start_index=2
for operation in operation_list:
uri=operation.getAttribute('url')
action_type=operation.getAttribute('action')
function_name=operation.getAttribute('name')
case_list=operation.getElementsByTagName('case')
print(action_type)
print(function_name)
print(case_file)
# 获得一次测试中所用到的参数的个数,定义保留参数的字典
for case in case_list:
parameter_list=case.getElementsByTagName('Parameter')
length=len(parameter_list)
print (length)
json_data={}
# 生成一个字典,字典中保留了所用到参数及所对应的测试数据
for index in range(length):
print ("index is:"+str(index))
name=parameter_list[index].getAttribute('name')
value=parameter_list[index].getAttribute('value')
json_data[name]=value
if action_type=="post":
print (json_data)
# 输入参数后系统响应
response=requests.post(uri,data=json_data)
case_id_locator='A'+str(start_index)
working_sheet.cell(case_id_locator).value=start_index book.save(AUTO_RESULT)
#将测试中所用到的URL写到测试结果中
service_url_locator='B'+str(start_index)
working_sheet.cell(service_url_locator).value=uri
book.save(AUTO_RESULT)
# 将XML文件中保存的所要测试的方法保存在结果表中。
function_name_locator='C'+str(start_index)