尝试写了一个简单的接口测试,基于Python3.4,主要用到了Python读取excel以及requests库的知识,也算是对这段时间Python基础知识学习的一个巩固吧。

因为还没有学习到Python中类、对象等相关知识,所以代码看起来很散,没有封装,也没有优化。如有问题,希望大家能帮忙指出。

 import xlrd
import requests #下文中将用到的全局变量 nrows = 0
rdict = {}
relist=[] #从excel中导入数据 def imptestcase():   fname = 'testcase.xlsx'
  bk = xlrd.open_workbook(fname)   try:
    sheet = bk.sheet_by_name('case1')
  except:
    print("no sheet in %s named sheet1" %fname)   global nrows
  nrows = sheet.nrows
  ncols = sheet.ncols   for i in range(0,ncols):
    data = sheet.col_values(i)
    global rdict
    rdict[data[0]]=data[1:] #将excel读取的数据封装成请求,并发送 def sendpost():
  #response = requests.post(url,json = data,headers = headers,verify=False)
  for i in range(0,nrows-1):
    url = rdict['url'][i]     if rdict['headers'][i]!='':
      headers = eval(rdict['headers'][i]) #str to dict
    else:
      headers = {}     if rdict['json'][i]!='':
      json = eval(rdict['json'][i]) #str to dict
    else:
      json = {}
    if rdict['params'][i]!='':
      params = eval(rdict['params'][i]) #str to dict
    else:
      params = {}     try:
      r = requests.get(url,json = json,headers = headers,params = params,verify=False)
      r.raise_for_status()
      r.encoding=r.apparent_encoding
      global relist
      relist.append(r.status_code)
    except Exception as e:
      print(e)
      print('请求失败') #把返回的结果输出到html中,形成HTML报告(知识简单的展示,没有样式)
def output_html():
  fout=open('output.html','w',encoding='UTF-8', newline='')
  fout.write('<html>')
  fout.write('<head>')
  fout.write('<meta charset = "UTF-8"/>')
  fout.write('</head>')
  fout.write('<body>')
  fout.write('<h1>report<h1>')
  fout.write('<table>')
  fout.write('<tr>')
  fout.write('<td>%s</td>' % relist)
  fout.write('</tr>')
  fout.write('</table>')
  fout.write('</body>')
  fout.write('</html>')
  fout.close() if __name__ == '__main__':
  imptestcase()
  sendpost()
  output_html()

【excel内容】

python自学1——接口测试的更多相关文章

  1. 《用Python做HTTP接口测试》学习感悟

    机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...

  2. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  3. Python 开发与接口测试学习笔记

    这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...

  4. Python+reuqests自动化接口测试

    1.最近自己在摸索Python+reuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快! 思路--1.通过python读取Excel中的接口用例,2.通过pyth ...

  5. python+requests+json 接口测试思路示例

    实际项目中用python脚本实现接口测试的步骤: 1 发送请求,获取响应  >>2 提取响应里的数据,对数据进行必要的处理  >>3 断言响应数据是否与预期一致 以豆瓣接口为例 ...

  6. Python - 自学django,上线一套资产管理系统

    一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小 ...

  7. 拎壶冲冲冲专业砸各种培训机构饭碗篇----python自学(一)

    本人一直从事运维工程师,热爱运维,所以从自学的角度站我还是以python运维为主. 一.python自学,当然少不了从hello world开始,话不多说,直接上手练习 1.这个可以学会 print( ...

  8. [Python自学] day-21 (2) (Cookie、FBV|CBV装饰器)

    一.什么是Cookie 1.什么是Cookie? Cookie是保存在客户端浏览器中的文件,其中记录了服务器让浏览器记录的一些键值对(类似字典). 当Cookie中存在数据时,浏览器在访问网站时会读取 ...

  9. [Python自学] day-21 (1) (请求信息、html模板继承与导入、自定义模板函数、自定义分页)

    一.路由映射的参数 1.映射的一般使用 在app/urls.py中,我们定义URL与视图函数之间的映射: from django.contrib import admin from django.ur ...

随机推荐

  1. [Open Source] .NET 基于StackExchange.Redis的扩展

    目录 简介 主从复制 备份与恢复 API AddOrUpdate GetOrAdd DeleteByPattern SearchKeys TransExcute Subscribe/Publish T ...

  2. [js] 实现接口

    摘要 js 语言并没有interface implement 关键字,如果要做到和后端语言类似的接口,一般会需要模拟实现. 在oo 编程中, 接口可以让架构师规定好模块必须要实现的方法, 尽量解耦模块 ...

  3. Tencent分布式开源框架Pebble

    最近研究了T分布式开源框架Pebble,基本上想要的基础组件都有了,不过文档很糟糕,这也是T特色,只管开源不管维护:1.支持rpc/reverse_rpc2.支持http驱动3.支持tcp驱动(基于z ...

  4. codeforces 475D. CGCDSSQ

    D. CGCDSSQ time limit per test 2 seconds memory limit per test 256 megabytes Given a sequence of int ...

  5. 聪明的质监员[NOIP2011]

    时间限制:1 s   内存限制:128 MB [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检 ...

  6. 新的表格展示利器 Bootstrap Table

     1.bootstrap table简介及特征 Bootstrap Table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分 ...

  7. AKOJ -- 1529 -- 寻找最大数

    1529: 寻找最大数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 107  Solved: 53 上一题SubmitStatus标签打分编辑题目信 ...

  8. Vue.js安装

    环境 操作系统:window7 虚拟机:centos7 vue.js: 2.8 安装nodejs 参考我得文章: http://blog.csdn.net/u013066244/article/det ...

  9. Lenovo T440p 外放没有声音

    背景:Lenovo T440p,今天突然想听会歌 外放竟然没声音,fuck!!! 任务栏声音图标也没有静音标志. 驱动出问题了?检查下驱动,正常. 找了耳机试下,正常,看来驱动真的没问题. 喇叭坏了? ...

  10. Mac实用操作技巧(一)

    使用Spotlight进行数学计算.单位转换 在调出Spotlight后,可以直接在Spotlight输入框中输入数学公式进行计算,比如1+2-(5-3)*4等等比较复杂的计算,但是一定要记得输入法一 ...