当前位置: 首页 > article >正文

python+request接口自动化框架

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离!

robot framework 的安装不过多说明,网上资料比较太多~

实例:!!!!!

步骤一:新建项目

测试项目可以目录或文件存储,格式可以用TXT,TSV或HTML格式, 建议项目选择目录和TXT,这样便于管理

 步骤二:新建测试套

测试套与测试项目一样,也可以目录和文件存储,格式也可以用TXT,TSV或HTML格式,建议测试套选择文件存储和TXT

步骤三:新建测试用例

————————这一系列的基础支撑组件创建结束后————目录结构为————————

下面介绍在此框架上如何创建一条用例!!!

我们知道!rf是由关键字驱动的,而且是由测试库识别测试对象、操作被测试对象的。

那么怎么使用关键字呢?首先我们需要导入测试库!!!

步骤四:添加lib,此次需要的应用到的测试库都在截图中,其实也可以用urllib2这个库获取url内容信息 

ps:json和requests均为python导入的库!(queryPrdodcut.py为我个人封装的一个库)

可以通过F5件查询lib下的方法,看自己需要使用哪个就选应用哪个

步骤五,方法应用,按住ctrl就有可以介绍的方法

步骤六:输出一条场景的case,下面就是我个人创建的一个case(目前以第三库和自己带的方法输出的case)

1.set variable 代表设置变量2. catenate代表把多个参数组装在一起3.requests.get代表使用resquests库通过get请求获取response4.should be qeual as strings 代表是是否等于期望值是个断言(可以参考新浪博客)

5.log代表查看内容 

特别说明:通过这个方法可以使用rep.status_code和rep.content

 

用自带的是不是很繁琐,输入了那么多条才完成了一个请求,因此我封装了一个关于http的get请求库(当然checkValue也是我个人封装的一个函数~)

具体实现如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

__author__ = 'niuzhigang'

#!/usr/bin/env python

#*- coding: UTF-8 -*-

#encoding=utf-8

import json

import  requests

class queryProduct(object):

    @classmethod

    def interfacetest(self,reqadress,reqinterface,reqc,reqd, floattimeout):

        requrl = reqadress + reqinterface

        print "print requrl --->"+requrl

        header={"content-type":"application/json"}

        reqparams = {'c':reqc, 'd': reqd}

        reqparam = json.dumps(reqparams,encoding='utf-8',ensure_ascii=False)

        print  'print reqparams --->'+reqparam

        timeout = float(floattimeout)

        # get request result

        getrep = requests.get(url=requrl,headers=header, params=reqparams,timeout=timeout)

        print "get req result --->"+getrep.text

        return getrep.text

  

 那么问题来了?怎么使用自己定义的一个库呢?(具体如何开发有点python基础知识就可以了~我也不说了~)

下面请个人封装的库上场~ 

PS:自己封装的库可以根据自己需求打印日志~实现方法就是函数中 print即可!!!!

 

说明:为什么写了timeout = float(floattimeout)---->timeout转float,因为通过rf输入后为字符串型,因此需要转float

运行rf结果如下:

步骤七:查看判定结果,执行play键或者F8

 

ps蓝色的均是超链接可以打开,如:想看具体每个场景case的失败or通过  ------>点击

可以查看)结果如下:

 补充:目前只实现了接口的基础架构,后续会维护更多如发送报告,email 微信等 还有更多关键字的封装~~~

当然这个也支持ui自动化如web导入selenium库就可以实现ui自动化

我也是刚接触rf,希望大家以后多多相互交流交流!!!

Python接口自动化测试零基础入门到精通(2023最新版)


http://www.kler.cn/a/106582.html

相关文章:

  • 容器安装gitlab
  • 飞凌嵌入式RK3576核心板已适配Android 14系统
  • windows tomcat 报错后如何让窗口不闪退
  • Odoo :一款免费开源的日化行业ERP管理系统
  • 《TCP/IP网络编程》学习笔记 | Chapter 10:多进程服务器端
  • 前端学习八股资料CSS(二)
  • Transformer模型 | 用于目标检测的视觉Transformers训练策略
  • 多测师肖sir_高级金牌讲师__接口测试之tonken (5.6)
  • 异步编程详解(.NET)
  • java毕业设计基于springboot的民宿预订信息网站
  • Matter.js 插件:matter-wrap(世界是圆的)
  • 主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数保留精度(末尾清零)
  • KV STUDIO的安装与实践(一)
  • <蓝桥杯软件赛>零基础备赛20周--第2周
  • [架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构
  • Liunx两台服务器实现相互SSH免密登录
  • lossBN
  • Go实现网络通信
  • Ubuntu Linux下如何搭建并安装EDK2
  • C# 图解教程 第5版 —— 第8章 类和继承
  • 软考-网络安全漏洞防护技术原理与应用
  • 【Android】MQTT
  • Stable Diffusion 图生图+ControlNet list index out of range
  • JKPacket权威指南——学习建议
  • C++进阶语法——OOP(面向对象)【学习笔记(四)】
  • Cross-modal Variational Alignment of Latent Spaces