Python接口测试入门

一.自动化测试常用框架

  1.数据驱动测试框架

         描述:数据与测试脚本分离,便于测试数据的单独维护

         模型:  

2.测试脚本模块化框架

        描述:根据业务功能将脚本模块化并从外部调用数据,便于不同业务模块的脚本单独维护

        模型:   

     

3.测试库构架框架(现在都用这种)

         描述:将所有系统控件封装在测试库中,测试脚本在调用测试库内方法的同时传递外部的测试数据

         模型:                                        

二.自动化测试主要构成

  1. 测试数据:测试脚本需要用的测试数据

  2. 测试脚本:执行情况汇总得到测试报告

  3. 测试用例:一个功能点对应一个或者多个用例,尽可能的提高覆盖率

  4. 执行日志:日志记录和管理功能,根据不同的日志级别,方便定位问题;

  5. 公共函数:便于通用方法及操作的管理

  6. 测试报告:汇总所有测试脚本的执行情况

  7. 持续集成环境(自动化测试的核心)

三.实例演示

python+unittest +requests

代码流程:

大概结构:

import unittest                             #引入公共函数库

import requests                           #python自带的单元测试框架

class xxx(unittest,TeatCase):     #测试类

    def setUp(self):                      #def定义测试用例

           #该区域写所有测试用例的前提条件的操作内容:比如登陆系统,打开页面…

    def test_001(self):

           #第一个测试用例的测试内容及预期结果

           #没有预期结果(断言)的测试用例没有意义

    def test_002(self):

           #第二个测试用例的测试内容及预期结果

     def test_003(self):

           #第三个测试用例的测试内容及预期结果

     def tearDown(self):

          #该区域写所有测试用例执行完成以后的反向操作:比如退出系统,关闭页面…

 

以上测试套的执行步骤:setUp—test_001—tearDown—setUp—test_002—tearDown….

四.常用requests库

python自带的接口测试方法requests:包含post,get,put,delete等常用接口请求类型(详细使用方法参考requests模块的方法说明)

接口案例一:

def test_001(self):

   num=randonnum(11)

   idnum=randonnum(4)

   #创建

   request={

      "name":"测试同学",

      "num":num,

       "idnum":idnum

        ......

}

   url=self.host+“/api/admin/num/clerk/create”

   res=request.post(url,headers=self.headers,json=request)

 self.assertEqual(200,res.status_code)

 

注意点:

res = requests.post(url,headers,josn)

#url:为请求的URL地址

#headers:传入请求的header格式

#josn: 该参数传入封装成字典格式的请求body体

assertEqual(200,res.status.code)

 #断言:校验请求的返回码是否等于200,不等于200,此处会抛出错误

 

接口案例二:

def test_002(self):

   #查看店铺销售额

  createtime=time.strftime("%Y-%m-%d",time.localtime())

  url=self.host+"/api/infinity/order/aggregation/group/list"

  params=dict(start='2018-09-14',end=createtime,storeId=self.users[1]['storeId'])

  res=request.get(url,headers=self.headers,params=params)

  self.assertEqual(200,res.status_code)

注意点:

res = requests.get(url,headers,params)

#params:此参数为url中的参数,实在调用时会拼接在请求的url后面

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海是倒过来的天~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值