• 0
  • 0
分享
  • python 读取 Excel 自动化执行测试用例——软件测试圈
  • 恬恬圈 2022-12-12 16:49:11 字数 3142 阅读 2193 收藏 0

 接口请求代码构建

  import requests
  from random import randint
  import xlrd
  import json
  class My_request(object):
      # 对返回值进行处理
      def __str__(self):
          # return "%r"%self.connect()
          return str("%r"%self.connect())
      # 获取表格数据
      def connect(self):
          excelDir = '../data/动画绘本馆测试用例.xls'
          # 打开Excel文件 formatting_info=True :保持原样式
          self.workBook = xlrd.open_workbook(excelDir,formatting_info=True)
          # 获取所有表名
          sheets = self.workBook.sheet_names()
          # 需要执行的sheet
          workSheet = self.workBook.sheet_by_name('测试用例2')
          # 获取一行
          # cellData = workSheet.row_values(1)
          # 获取单元格 获取的不是字符串 而是excel 格式参数
          cellData = workSheet.cell(1, 0)
          return cellData.value
      # token函数 调用函数就可获取token值 再用到新增接口
      def get_token(self):
          # 获取token
          token_urls = 'http://47.96.181.17:9090/rest/toController'
          payload = {'userName': 'J201903070064', 'password': '362387359'}
          # 发送请求 json 请求体
          res = requests.post(token_urls, json=payload)
          return res.json()['token']
      #  新增用户接口
      def add_user(self,bodyData):
          """
          :param bodyData: request body
          :return:  res data
          """
          self.addUsr_url = 'http://47.96.181.17:9090/rest/ac01CrmController'
          # 对字符串转换字典 json 串
          self.payload = json.loads(bodyData)
          # 对手机号进行参数化
          self.payload['aac030'] = f'134{randint(11111111,99999999)}'
          self.header_addusr = {'Content-Type': 'application/json', 'X-AUTH-TOKEN': self.get_token()}
          # # 发送请求 url 请求体
          res = requests.post(self.addUsr_url,json=self.payload,headers = self.header_addusr)
          self.rest = res.json()
          # 打印输出结果 是否注册成功
          print(res.json())
          return res.json()
      def write_index(self,datas):
          from xlutils.copy import copy
          # 对表复制 原始的测试用例不会改变
          newWoekBook = copy(self.workBook)
          # 取拷贝的excel的sheet 下标
          newSheet = newWoekBook.get_sheet(1)
          # 写入数据 第一行第一列
          newSheet.write(1, 1, datas)
          # 保存新生成的 excel对象
          newWoekBook.save('../data/res.xls')
      def write_in(self):
          # 如果已经有数据了 就需要对原表进行复制
          if self.rest['message'] == '成功':
              info = 'pass'
              self.write_index(info)
          else:
              info = 'fail'
              self.write_index(info)
  if __name__ == '__main__':
      re = My_request()
      re.add_user(re.connect())
      re.write_in()

  测试结果写入到Excel

  文件不存在 -- 新建excel -- 写 -- xlwt

  文件本身存在--另存为写入excel--xlutils

  def write_index(self,datas):
      from xlutils.copy import copy
      # 对表复制 原始的测试用例不会改变
      newWoekBook = copy(self.workBook)
      # 取拷贝的excel的sheet 下标
      newSheet = newWoekBook.get_sheet(1)
      # 写入数据 第一行第一列
      newSheet.write(1, 1, datas)
      # 保存新生成的 excel对象
      newWoekBook.save('../data/res.xls')
  def write_in(self):
      # 如果已经有数据了 就需要对原表进行复制
      if self.rest['message'] == '成功':
          info = 'pass'
          self.write_index(info)
      else:
          info = 'fail'
          self.write_index(info)



作者:老祝头    

来源:http://www.51testing.com/html/25/n-4477625.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   什么是Docker  Docker按照通俗易懂的理解来说就是一个用来装应用的容器,就像可以把水装到杯子里,把饭装到碗里,把钱装到钱包里......  可以把网站放在Docker中,可以把任何想得到的程序放在Docker中。  Docker能解决的问题  环境配置的问题  软件开发最大的麻烦事之一,就是环境配置。  比如一个java web应用,运行起来需要一个操作系统,操作系统之上还需要jdk、tomcat、mysql、系统环境问题、配置问题,甚至jdk、tomcat版本问题都能导致程序运行失败。  所以Docker来了,它把操作系统、jdk、tomcat等全部放在集装箱里,再打...
            12 12 1753
            分享
          •   一 背景介绍  1.什么是Redmine   Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统。  我们用Redmine 主要是用于 Bug 管理流程,包括新建、已解决、反馈、关闭等状态。  2.事情起因  有一次服务器自动关机,再次重启后发现redmine 的redmine thin1 和thin2 两个服务启动不起来,导致登录页面提示异常,如下图。  二 处理过程  1.启动两个服务  首先出现上图中报错,排查发现redmine thin1 和thin2这两个服务需要重新启动,启动可以在系统服务里启动,也...
            0 0 1106
            分享
          •   背景  对于很多中小型银行来说,数据中台是基于大数据平台基础支撑,支持规则模型计算,大批量计算查询分析,形成统一服务层,为各类数据服务应用赋能。  很多中小型现在面对数据应用的痛点在主要在于:  数据应用主要还是在 T 加1的服务为主,缺乏实时数据服务;  数据服务主要还是集中在报表需求,缺乏数据深入分析能力;  缺乏对历史查询和分析支持不足。  为了解决这些痛点,建设数据中台,增加统一数据实时服务(主要为计算和查询),提升大批量数据处理,数据建模深入分析,亿级数据关联计算时间秒级,增加非结构化数据查询存储能力。  典型应用需求场景  1、风控评级,比如个人对公账户评级,对可疑账户进行倒查...
            1 1 816
            分享
          • 一、功能测试1、链接测试  (1)测试所有链接是否按指示的那样确实链接到了该链接的页面;(2)测试所链接的页面是否存在;(3)保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。2、表单测试(1)注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性;(2)用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等;(3)检验默认值的正确性;(4)如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。3、Cookies测试(session测试同)(1)Cookies是否起作用;(2)Coo...
            0 0 1089
            分享
          • 使用说明:http://quan.51testing.com/pcQuan/lecture/97开源项目地址: https://gitee.com/samllpig/SafeTool-51testing (谢谢大家点亮star)安全测试工具架构:安全测试工具v1.2版本更新内容:请求拦截功能,支持多个请求拦截   2. 响应拦截功能动图比较大,可以再git上看说明文档 https://gitee.com/samllpig/SafeTool-51testing
            3 3 3138
            分享
      • 51testing软件测试圈微信