篇2                 book-python-auto-test-番外篇--接口测试2

--lamecho辣么丑

大家好! 我是lamecho(辣么丑),今天将继续上一篇python接口测试番外篇的内容。回顾一下,上篇的内容最后我们是针对天气预报支持的城市查询做了一个脚本,大家还记得它是什么类型的请求吗,对POST,那今天我将对它的另一个接口“城市天气预报查询”在python里实现。

# -*-coding:utf8-*-

from appium import webdriver

import urllib

import urllib2

city=u'北京'.encode('utf-8')

url='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName'

data={'theCityName':city}

data=urllib.urlencode(data)

ret=urllib2.urlopen(url,data)

print ret.read()

看看我们的脚本,是不是和上一篇的脚本不一样了。是的,这样是我们提到的GET请求的写法。我们先来看看这个接口的详细信息的截图,大家也可以访问上一篇提供的网址去看。http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

首先拼接我们的url,大家应该会了吧。那我们就来看看脚本中新出现的data变量,在python里它被定义为一个dict字典类型,key值就是我们要传的参数名称‘'theCityName'’,那么对应的value值是什么呢,自然就是我们要传递的具体参数内容城市名称了。但是我们不能直接传“北京”这个内容进去,会报错。由于我们的后台采用的编码是utf-8,这里可以从后台的返回示例里看出来(content-type),所以我们要将中文的内容转化为utf-8的格式传递进去。处理完这些后再看这句urllib.urlencode(data),为什么要再去对我们的data值做这样的操作呢,是因为我们请求的content-type类型是 x-www-form-urlencoded,所以我们要将data转化为系统识别的格式传递进去才行,如果不去遵守规范自然程序是不认识的。

大家理解了这里,在遇到其他类型的时候,自然就要思考怎么去把传进去的数据转化为系统要求的格式了。最后还是用我们的urllib2.urlopen(url,data)方法去请求服务端得到返回。看看我们的返回结果是什么,可以看到返回结果正常返回了北京的具体天气情况,没有pm2.5差评。

好了,原本我还要介绍一个解梦的接口,其实实现方式都已经告诉大家了,有必要给大家留份作业。在解梦这个接口中,先解读它的接口详情介绍,是属于什么类型的请求,然后请求的地址是什么。透露个小惊喜,其实这里还是埋了一颗雷的。大家遇到什么问题可以联系我,在我的微博留言,搜索“lamecho好棒

最后感谢大家耐心读完本篇文章,其实接口的测试过程中不止我文中讲的那些,这两篇自动化测试的番外文章只是针对接口测试的一个引子,希望大家在实际的工作多去实践。我是lamecho,辣么丑。

原创文章,转载请注明出处。

欢迎关注我的个人微信号”fire-bug“,了解最新文章或提出你的问题和观点

微博:https://weibo.com/u/6017986584

python自动化测试应用-番外篇--接口测试2的更多相关文章

  1. python自动化测试应用-番外篇--接口测试1

    篇1                 book-python-auto-test-番外篇--接口测试1 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),至今<安卓a ...

  2. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  3. python之爬虫--番外篇(一)进程,线程的初步了解

    整理这番外篇的原因是希望能够让爬虫的朋友更加理解这块内容,因为爬虫爬取数据可能很简单,但是如何高效持久的爬,利用进程,线程,以及异步IO,其实很多人和我一样,故整理此系列番外篇 一.进程 程序并不能单 ...

  4. Python学习-day10(番外篇) 阻塞IO 非阻塞IO 同步IO 异步IO

    这个章节的内容是关于IO的概念,谈一谈什么是 阻塞IO 非阻塞IO 同步IO 异步IO.以下摘要是我对这四种IO的一个形象理解. 场景是去去银行办理业务.节点有三个,1)到银行提交申请:2)取号:3) ...

  5. 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)

    1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...

  6. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (II)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架 II第二部 0. 本系列教程 1. 登录功能准备 a.python中操控mysql b. 安装数据库 c.安装mys ...

  7. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  8. openresty 学习笔记番外篇:python的一些扩展库

    openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...

  9. openresty 学习笔记番外篇:python访问RabbitMQ消息队列

    openresty 学习笔记番外篇:python访问RabbitMQ消息队列 python使用pika扩展库操作RabbitMQ的流程梳理. 客户端连接到消息队列服务器,打开一个channel. 客户 ...

随机推荐

  1. jmeter的http cookies管理器使用

    关于Cookie不过多介绍,测试UI的小伙伴们应该对此有深深的爱和恨~ 本文介绍如何:1.获取Cookie.2.保存Cookie 3.引用Cookie 最终达到Cookie类似无法失效的目的~ Coo ...

  2. C语言之一天一个小程序

    程序示例: #include <stdio.h> #include <stdlib.h> int main() { printf("Hello,world!\n&qu ...

  3. 微信JS初始化--微信JS系列文章(一)

    概述 微信JS的使用方法,官方文档已经描述得比较清楚了,这里我就不重复介绍了,本文意在提供现成的代码,供大家快速迭代开发,以及补充一下官方文档描述得不够清楚的地方,避免大家踩相同的坑. 微信JS初始化 ...

  4. Hive 伪分布式下安装

    本安装过程只作为个人笔记用,非标准教程,请酌情COPY.:-D Hive下载 下载之前,需先查看兼容的Hadoop版本,并安装hadoop,参考 http://www.cnblogs.com/yong ...

  5. Fireworks快捷键大全和ps查看切图的坐标颜色

    记住后方便了许多

  6. media query(媒体查询)和media type(媒体类型)

    media type(媒体类型)是css 2中的一个非常有用的属性,通过media type我们可以对不同的设备指定特定的样式,从而实现更丰富的界面.media query(媒体查询)是对media ...

  7. Unity 3D Framework Designing(3)——构建View和ViewModel的生命周期

    > 对于一个View而言,本质上是一个MonoBehaviour.它本身就具备生命周期这个概念,比如,Awake,Start,Update,OnDestory等.这些是非常好的方法,可以让开发者 ...

  8. CoreCLR源码探索(四) GC内存收集器的内部实现 分析篇

    在这篇中我将讲述GC Collector内部的实现, 这是CoreCLR中除了JIT以外最复杂部分,下面一些概念目前尚未有公开的文档和书籍讲到. 为了分析这部分我花了一个多月的时间,期间也多次向Cor ...

  9. pacejs进度条监控服务端数据加载是否完毕

    记得刚刚入职新公司的时候,公司在做app里面的h5页面.跟之前公司的流程不太一样.之前都是写完静态页面后通过ajax加载接口数据,这公司省事了,写完静态页面直接扔给服务端,他们来填数据,确实给前端省事 ...

  10. Asp.net SignalR 应用并实现群聊功能 开源代码

    ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务 ...