五、Python编写接口自动化

2023-05-16

1.     总结结果

2.     详细代码:


# -*- coding: utf-8 -*-
import requests
import json

class web_requests(object):
    def __init__(self):
        pass

    def Interface(self,Interface_path,**My_data):
         url = "http://testdj.XXXXXX.com:8378/%s" %(Interface_path) # 测试的接口url
         headers = {"Host": "testdj.XXXXXX.com:8378",
                    "Accept": "application/json, text/plain, */*",
                    "Referer": "http://testdj.XXXXXX.com:8280/",
                    "Accept-Language": "zh-CN,zh;q=0.8",
                    "Origin": "http://testdj.XXXXXX.com:8280",
                    "Accept-Encoding": "gzip, deflate",
                    "Accept": "application/json, text/plain, */*",
                    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"} #消息头
         #data1 = {"beginDate": "2018-01-01", "endDate": "2018-04-01"}  # 接口传送的参数
         data = My_data  # 接口传送的参数
         r = requests.get(url=url, json=data, headers=headers)  # 发送请求
         # return r.json
         print (r.text)  # 获取响应报文
         print (r.status_code)

a = web_requests()
a.Interface('monitor/sxsb-sxzl',beginDate="2018-01-01", endDate="2018-04-01")  

 

3.     代码说明:

1、接口的URL:

url = "http://testdj.XXXXXX.com:8378/%s"%(Interface_path)

 

 

2、请求消息头:

headers = {"Host": "testdj.XXXXXX.com:8378",
          
"Accept": "application/json,text/plain, */*",
           
"Referer": "http://testdj.XXXXXX.com:8280/",
          
"Accept-Language": "zh-CN,zh;q=0.8",
          
"Origin": "http://testdj.XXXXXX.com:8280",
          
"Accept-Encoding": "gzip,deflate",
          
"Accept": "application/json,text/plain, */*",
          
"User-Agent": "Mozilla/5.0(Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/61.0.3163.79 Safari/537.36"} #消息头

 

3、接口的传参数:

data = My_data  #接口传送的参数

注:

python传参数的格式原本如下:

data ={"beginDate": "2018-01-01", "endDate":"2018-04-01"}  # 接口传送的参数

但为了方便给外部引用进来,做了如下特殊处理:

这里存在多个参数

a.Interface('monitor/sxsb-sxzl',beginDate="2018-01-01",endDate="2018-04-01")

python将多个参数合并,重点是“**”

def Interface(self,Interface_path,**My_data):

调用时可以直接写:

data = My_data  #接口传送的参数

相当于:data = {'beginDate':'2018-01-01', 'endDate': '2018-04-01'}

 

4、给服务器发起请求:

r = requests.get(url=url, json=data, headers=headers) # 发送请求

 

5、服务器返回结果:

print (r.text) # 获取响应报文

 

4.     Robot引用:

(1)、py代码

Py文件名:Web_Interface.py

代码如下:

# -*- coding: utf-8 -*-

import requests

import json

 

class Web_Interface(object):

   def __init__(self):

       pass

 

   def web_interface(self,Interface_path,**My_data):

       url = "http://testdj.XXXXXX.com:8378%s" %(Interface_path)# 测试的接口url

       headers = {"Host": "testdj.XXXXXX.com:8378",

                    "Accept":"application/json, text/plain, */*",

                    "Referer":"http://testdj.XXXXXX.com:8280/",

                   "Accept-Language": "zh-CN,zh;q=0.8",

                    "Origin":"http://testdj.XXXXXX.com:8280",

                   "Accept-Encoding": "gzip, deflate",

                    "Accept":"application/json, text/plain, */*",

                    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/61.0.3163.79 Safari/537.36"} #消息头

       #data1 = {"beginDate": "2018-01-01","endDate": "2018-04-01"} # 接口传送的参数

       data = My_data  # 接口传送的参数

       r = requests.get(url=url, json=data, headers=headers)  # 发送请求

       #print (r.text)  # 获取响应报文

       #print (r.status_code) # 获取结果码

       return json.loads(r.text)

 

(2)、引用py脚本

(3)、robot使用

(4)输出结果

5.     参见问题:

(1)、python接口能返回结果,但在获取结果里的data值却报错了(string indices must be integers)

原因是接口返回结果没有转换转成obj

  原代码:

     return r.text

  用json.loads 修复如下:

      return json.loads(r.text)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

五、Python编写接口自动化 的相关文章

随机推荐

  • java 实现布隆数

    package test import java util Arrays import java util BitSet import java util concurrent atomic AtomicInteger 64 author
  • influxdb 数据库安装和简单使用

    1 wget https dl influxdata com influxdb releases influxdb 1 8 4 x86 64 rpm 或者从 influxdb 1 8 4 x86 64 rpm 其它文档类资源 CSDN下载
  • 请求参数和应答数据统一加解密

    一 xff0c 针对请求参数和应答数据都是json格式时 xff0c 可以通过 xff0c 下面的方式 xff0c 进行统一的的加解密 1 设置配置文件 64 Bean public MappingJackson2HttpMessageCo
  • java 验证字符串是否为int,double 类型的数据

    import java util regex Matcher import java util regex Pattern 数据类型验证 64 author dell public class DataValidate 判断 String
  • zabbix 5.4 agent主动模式下`ZBX`图标显示灰色的处理

    通过前面的实际操作练习 xff0c 相信大家对zabbix已经有了比较深入的认识了 我们已经知道zabbix客户端分为 主动 和 被动 两种模式 xff0c 所谓主动模式就是客户端主动上报自身的监控数据 xff0c 而被动模式是服务端主动向
  • 解决mybatis 数据库date 与 java 中Date类型映射

    使用mybatis 从数据库中查询出date 类型字段 xff0c 在java 类型中只看到了日期 xff0c 没有看到时分秒 xff0c 从数据库中是可以看到时分秒的 后来发现是mybatis 映射数据类型的原因 xff1a 如 xff1
  • jwt 生成token 和解析token

    lt jjwt version gt 0 6 0 lt jjwt version gt lt fastjson version gt 1 2 16 lt fastjson version gt lt dependency gt lt gro
  • Linux下使用grep,tail 查看查找日志

    有时候日志文件比较大 xff0c 有几G 无法使用工具打开文件 xff0c 这个时候就需要使用命令来查找错误信息 一 tail 命令 例如查看 catalina out 后50行日志 color 61 darkred tail 50f ca
  • 解决redisCluster 连接失败的问题

    使用redis3 2 8 建立集群后 xff0c 发现在连接redis 经常报连接失败 但是单独连接某个节点时 xff0c 是不会报错的 xff0c 经过分析终于发现了原因 原因是这样的 xff1a 我在建立集群的时候配置文件redis c
  • Thymeleaf select 使用 和多select 级联选择

    1 使用select 并且回绑数据 页面 xff1a 状态 xff1a lt select name 61 34 status 34 th field 61 34 status 34 id 61 34 idstatus 34 class 6
  • 防止 XML外部实体注入

    方式一 DocumentBuilderFactory dbf 61 DocumentBuilderFactory newInstance 这是优先选择 如果不允许DTDs doctypes 几乎可以阻止所有的XML实体攻击 String F
  • maven搭建mybatis实现增删改查

    第一章框架的概述 1三层结构 mvc web开发 使用mvc架构模式 m 数据 v 视图 c 控制器 c控制器 xff1a 接收请求 调用service对象 显示请求的处理信息 当前的servlet作为控制器 v 视图现在使用jsp htm
  • html5图片垂直居中

    html5图片居中 主要的思路是用table或者table cell xff0c 还有一种不太了解 xff0c 贴在最后 一 xff1a 显式使用table标签 这是只需要定义内容的CSS样式为table cell的 xff0c 并垂直居中
  • libevent设置超时后取消超时(bufferevent_set_timeouts取消超时无效问题)

    libevent用 bufferevent set timeouts 函数来设置读和写的超时时间timeout xff0c 比如设置读超时时间 xff0c 如果接收超时就会调用设置的错误处理函数 以tcp服务器为例 xff0c 在accep
  • (三) 安装VMware虚拟机

    1 将VMware Workstation Full 12 5 6 5528349 x86 64 bundle上传到服务器上 2 执行bundle文件 cd 到bundle文件目录 给bundle文件加权限 sudo chmod 43 x
  • zabbix 5.4 设置钉钉告警

    我们可以通过创建Webhook类型的报警媒介 xff0c 实现zabbix与钉钉群机器人联动 xff0c 从而达到监控主机的实时告警目的 1 创建钉钉机器人 首先在我们的钉钉运维群中新建一个机器人 打开智能群助手 xff0c 选中添加机器人
  • (六) 远程连接windows虚拟机

    1 设置静态ip 1 在vm网络编辑器中 xff0c 选择VMnet8网卡 xff0c 设置子网IP xff08 要统一网络段的 xff09 选择虚拟机 xff0c 在点击Edit下的Virtual Network Editor 设置静态i
  • (六) 更新glibc版本

    glibc版本太低 xff0c 造成个别脚本会执行报错 xff0c 如下错误 1 查看系统glibc支持的版本 strings lib64 libc so 6 grep GLIBC 可以看到最高只支持2 12版本 xff0c 所以考虑编译解
  • (八)、JMeter使用代理录制App手机端性能测试脚本

    1 环境准备 xff1a 1 手机 2 wifi 3 Jmeter 2 具体步骤 xff1a 1 启动Jmeter xff1b 2 测试计划 中添加 线程组 xff1b 3 工作台 中添加 HTTP代理服务器 xff1b 4 配置代理服务器
  • 五、Python编写接口自动化

    1 总结结果 2 详细代码 xff1a coding utf 8 import requests import json class web requests object def init self pass def Interface