最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

python实现接口测试

来源:动视网 责编:小OO 时间:2025-10-01 20:41:57
文档

python实现接口测试

刚进一个新公司,可能要做接口测试,没有用过工具,抄了几行代码,根据自己的理解整理一下,供自己以后学习备用贴上源码,也希望感兴趣的朋友一起讨论,mail:lnbcc0727@126.com使用说明:1.XML可以根据需要,组织测试案例,2.EXCEL除了预期结果列要写上预期之外,其它列不用填写3.源码实现执行XML案例,然后与EXCEL中预期做对比,最后将测试结果写入EXCEL中(执行案例时不要打开EXCEL,以免影响写入操作)一、XML案例源码(casedata.xml)...........
推荐度:
导读刚进一个新公司,可能要做接口测试,没有用过工具,抄了几行代码,根据自己的理解整理一下,供自己以后学习备用贴上源码,也希望感兴趣的朋友一起讨论,mail:lnbcc0727@126.com使用说明:1.XML可以根据需要,组织测试案例,2.EXCEL除了预期结果列要写上预期之外,其它列不用填写3.源码实现执行XML案例,然后与EXCEL中预期做对比,最后将测试结果写入EXCEL中(执行案例时不要打开EXCEL,以免影响写入操作)一、XML案例源码(casedata.xml)...........
刚进一个新公司,可能要做接口测试,没有用过工具,抄了几行代码,根据自己的理解整理一下,供自己以后学习备用

贴上源码,也希望感兴趣的朋友一起讨论,mail: lnbcc0727@126.com

使用说明:1.XML可以根据需要,组织测试案例,

          2.EXCEL除了预期结果列要写上预期之外,其它列不用填写

          3.源码实现执行XML案例,然后与EXCEL中预期做对比,最后将测试结果写入            EXCEL中(执行案例时不要打开EXCEL,以免影响写入操作)

一、XML案例源码(casedata.xml)

    

                           detail="每一个operation是一种接口,可增加Operation 在一个脚本中执行多个接口测试"

                   url="https://mail.163.com/" action="post">

                

                    

                    

                

                

                    

                    

                

                

                    ......

                

                 ......

        

            ........

        

        

    >

2、保存结果的EXCEL(WebServiceCases.xlsx)

3、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)

            working_sheet.cell(function_name_locator).value=function_name

            book.save(AUTO_RESULT)

            # G列保存系统响应的内容

            actual_result_locator='G'+str(start_index)

            working_sheet.cell(actual_result_locator).value=response.content

            book.save(AUTO_RESULT)

            # 预期结果事先写在E列,脚本读取预期结果

            expect_resutl_locator='E'+str(start_index)

            expect_content=working_sheet.cell(expect_resutl_locator).value

            run_result_locator='H'+str(start_index)

            # 保存结果

            # 如果预期的内容(expect_content)和响应的内容一致,刚通过,否则案例失败

            if expect_content == response.content:

                print ("true")

                working_sheet.cell(run_result_locator).value='PASS'

            else:

                print("false")

                working_sheet.cell(run_result_locator).value='FAIL'

            book.save(AUTO_RESULT)

        # get方法响应内容

        elif action_type=="get":

            response=requests.get(uri,data=json_data)

            print(response)

            print("get the webserveric:"+ str(start_index))

        start_index+=1

文档

python实现接口测试

刚进一个新公司,可能要做接口测试,没有用过工具,抄了几行代码,根据自己的理解整理一下,供自己以后学习备用贴上源码,也希望感兴趣的朋友一起讨论,mail:lnbcc0727@126.com使用说明:1.XML可以根据需要,组织测试案例,2.EXCEL除了预期结果列要写上预期之外,其它列不用填写3.源码实现执行XML案例,然后与EXCEL中预期做对比,最后将测试结果写入EXCEL中(执行案例时不要打开EXCEL,以免影响写入操作)一、XML案例源码(casedata.xml)...........
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top