尝试写了一个简单的接口测试,基于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. Java 操作jar包工具类以及如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  2. maven - 引用本地jar,进行jar包移动

    背景: 项目为maven工程,部分jar需要需用项目单独修改的本地jar包. 配置好scope后发现构建后引用的jar没有移动到对应的目录,百度后发现需要配置以下依赖 <plugin> & ...

  3. (转)Spring boot——logback.xml 配置详解(二)

    文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 根节点<configuration>包含的属性 scan: 当此属性设置为t ...

  4. Mysql的JDBC

    Java程序可以通过JDBC链接数据库,通过JDBC可以方便的访问数据库,不必为特定的数据库编写专门的程序. 需要先配置mysql-connector-java-5.0.8-bin.jar 使用JDB ...

  5. kafka生产实践

    最近接触到一个APP流量分析的项目,类似于友盟.涉及到几个C端高并发的接口,这几个接口主要用于C端数据的提交.在没有任何缓冲的情况下,一个接口涉及到5张表的提交.压测的结果很不理想,主要瓶颈就在与RD ...

  6. 最通俗易懂的javascript变量提升

    a = 'ghostwu'; var a; console.log( a ); 在我没有讲什么是变量提升,以及变量提升的规则之前, 或者你没有学习过变量提升,如果按照现有的javascript理解, ...

  7. Uva 679 Dropping Ballls 二叉树的编号

    这个程序常规处理起来数据量很大,I可以高达2^D-1 /* ....... */ 里面的代码块据此避免了开太大的数组 做太多的循环 #include<cstdio> #include< ...

  8. 2017-6-4 CTF解题报告

    1.签到题 附件 扫描二维码得到 ZCTF{WELCOME_TO_20-209} 2.阿斯克的秘密 从前有个叫做阿斯克的人,他写了一句话,聪明的你能明白他写的是什么吗? 附件 int a; while ...

  9. 字符串--hdu--3783--ZOJ

    /* Name: 字符串--hdu--3783--ZOJ Author: shen_渊 Date: 17/04/17 20:58 Description: 明天开始刷字符串的题,先来道水题 */ #i ...

  10. NYOJ--325--深度优先搜索--zb的生日

    /* Name: NYOJ--325--zb的生日 Author: shen_渊 Date: 15/04/17 08:18 Description: 输入时计算总质量,DFS搜索和总质量差值一般最接近 ...