• Python接口测试


    下面是Python请求Post接口的实例和seed测试框架的基本使用;由于本人比较懒,未将两者进行合并;

    接口自动化测试思路:

    1、接口测试的数据准备(入参、预期结果维护在CSV文件中)

    2、编写请求接口的脚本,入参读取外部CSV文件,返回请求结果。

    3、应用框架(包),将接口请求的返回的数据与预期结果(预期结果从CSV文件中获取)进行逐个比对。(数据类型、数据准确性验证)

    4、结合业务,将多个接口串起来进行测试。

    读取csv文件内容:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-

    import csv

    with open('xxx.csv','rb') as f:

      reader=csv.reader(f)

      for row in reader:

        print row

     Python请求Post接口

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import urllib2,urllib
    import sys
    import json
    reload(sys)
    sys.setdefaultencoding('utf-8')
    #要请求的url
    url1 = 'http://*****/api/execute'
    #需要传递的参数,并对参数进行编码
    data={
        "sign":"",
        "secret":"",
        "oper":"loginoffice",
        "type":"account",
        "source":"H",
        "version":"5",
        "device":{"OS":"ios","IMEI":"491cd147fb8ab1a72bb8d35ac8081fb5bbafb9b4","OSV":"6.0"},
        "para":{"username":"GZGYSOP1YWY1","password":"123456"},
        }
    #data=urllib.urlencode(data)

    #将数据变为json格式
    data=json.dumps(data)
    url2=urllib2.Request(url1,data)

    #请求
    response=urllib2.urlopen(url2)
    #获取code
    print response.getcode()

    #获取请求结果
    apicontent=response.read()
    print apicontent
    #将字符串变为字典
    dics=eval(apicontent)
    print dics.get('data')

    Python单元测试(seed框架):

    #!/usr/bin/python
    #-*- coding : utf-8 -*-
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import seed

    case1_dict={'id':u'1001','desc':u'test1','num1':1,'num2':2,'res':3,'tags':'gao,zhaong,mod1'}
    case2_dict={'id':u'1002','desc':u'test2','num1':2,'num2':3,'res':5,'tags':'gao,zhaong,mod1'}
    case3_dict={'id':u'1003','desc':u'test3','num1':3,'num2':4,'res':7,'tags':'gao,zhaong,mod1'}

    def add_fun(case_dict):
        assert case_dict.res==case_dict.num1+case_dict.num2,u'buxing'

    seed.TestCase.add(case1_dict)
    seed.TestCase.add(case2_dict)
    seed.TestCase.add(case3_dict)
    seed.TestCase.case_run_method = add_fun
    seed.run()

  • 相关阅读:
    WPF 体验数据邦定
    数组和指针
    关于js的this上下文环境绑定
    比较特别的dean edward的javascript事件处理
    ie6 png透明支持缩放后的图片透明
    使用局部上下文创建控制器对象
    html5和c++封装webkit内核实现开放式游戏大厅设计(一)
    第二种简单方式创建模型控制器的方式
    Express 3.x + Socket.IO 版本升级后的改动(无法加载/socket.io/socket.io.js)
    MVC中简单数据模型(M): Model类
  • 原文地址:https://www.cnblogs.com/hlweng/p/6226568.html
Copyright © 2020-2023  润新知