python实现接口测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档