目录

一、脚本结构

二、使用的模块

三、脚本实现

        1、实时信息的获取

        2、数据的记录


     最近几周的测试工作中,有一项内容是需要不断地从界面上获取信息,所以我研究了一下 “ 利用接口先将信息获取下来,然后将信息输出到表格里 ” 的方法。

一、脚本结构

        脚本的结构非常简单,一个config.yaml文件存放接口信息,一个writeInfo.py文件负责界面的登陆,实时信息的获取和数据的记录。

二、使用的模块

        获取信息:requests

        配置文件:yaml

        读取表格:xlrd

        写入表格:xlwt

        追加写入表格:xlutils

三、脚本实现

        1、实时信息的获取

      实时信息获取利用requests库就可以完成。主要是需要知道这些操作使用的接口url、请求的方法、需要的参数等等。

import yaml
import requests

def getInfo(login_cookie):
    """获取信息"""
    # 首先打开yaml文件,因为接口信息我都存到了里面
    file = open('config.yaml', encoding='utf-8')
    res = yaml.load(file, Loader=yaml.FullLoader)
    
    # 从yaml文件中获取接口信息
    url = res['getInfo_url']
    header = res['getInfo_headers']
    cookie = login_cookie()
    info = {
        "count": 15,
        "page": 1,
        "index": 0
    }
    
    # 发送get请求,获取需要的信息
    response = requests.get(url, params=info, headers=header, verify=False, cookies=cookie).json()
    
    jobName = response['responseData']['data']['jobName'])
    speed = response['responseData']['data']['speed'])
    status = response['responseData']['data']['Status']

    return jobName, status, speed

        2、数据的记录

        数据记录部分我是利用python xlrd xlwt xlutils模块,将获取到的数据存入excel表格中的。好处是易读,再加上用excel进行求和、求平均值也非常方便。

import xlrd
import xlwt
from xlutils.copy import copy
from time import sleep

def writeInfo(login_cookie, getInfo):
    """数据记录"""
    # 首先创建一个新的表格
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet("数据记录")
    workbook.save("record.xls")
    
    jobName, status, speed = getInfo(login_cookie)
    
    # 追加写入数据
    while status == 4:
        jobName, status, speed = getInfo(login_cookie)
        
        # 读取原表格
        workbook = xlrd.open_workbook("record.xls")
        # 获取原表格第一个sheet的名字(我这里只有1个sheet)
        all_sheet = workbook.sheet_names()
        first_sheet = workbook.sheet_by_name(all_sheet[0])
        # 获取原表格第一个sheet一写入数据的行数
        rows = first_sheet.nrows  
        
        # 拷贝新的excel,并从rows行开始追加写入
        new_workbook = copy(workbook)
        new_sheet = new_workbook.get_sheet(0)
        
        new_sheet.write(rows, 0, jobName)
        new_sheet.write(rows, 1, status)
        new_sheet.write(rows, 2, speed)

        new_workbook.save("record.xls")
        # 每5秒循环一次
        sleep(5)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐