对于web接口测试,做一下总结。

接口测试总结

1. 接口url格式:http://www.xxx.com/a/bbb.html;
2. 接口url后面接的参数格式:“?参数名=参数值&参数名=参数值”;
3. 要清楚不同的参数名分别对应有多少种参数值;
4. 要清楚不同的参数值组合分别对应有多少种接口返回结果(即访问url后返回的json对象)。 
比如:有一个参数名为userName,一个userName的参数值对应的就是数据库表中一条用户记录的userName字段值,所以为了能够有足够的参数值作为测试数据,我们需要在数据库表中添加足够条数的用户记录。对于有多少种参数值,就要在数据库表中做多少条记录。这一部分,就是接口测试的数据准备部分。
在准备好接口测试的测试数据后,我们可以用PowerShell写一个脚本用来测试我们的接口,PowerShell 3.0提供了Invoke-WebRequest命令,可以很好的实现对于web的访问。但是Win7下默认的PowerShell是2.0.我们可以在PowerShell中输入$psversiontable查看当前PowerShell的版本。将PowerShell升级到3.0的过程可以在网上查到,只需按教程上的顺序进行下载安装即可(若遇到无法安装的错误信息,可能是因为Services中Windows Update服务被禁用了,需要手动开启)。重启电脑后,PowerShell就完成了到3.0的升级。之后我们就可以用Invoke-WebRequest命令来编写web接口测试的脚本了。

接口测试脚本

代码如下(本地文件名为iUriTest.ps1):

chcp 936
Write-Host "请输入以下接口信息" -ForegroundColor Yellow
$iUri = Read-Host "接口uri"
$i1Name = Read-Host "接口参数名1"
$i2Name = Read-Host "接口参数名2"
while($true){
$tip1 = "输入接口参数"+$i1Name+"的值:"
Write-Host $tip1 -ForegroundColor Cyan
$i1Value = Read-Host
$tip2 = "输入接口参数 "+$i2Name+"的值:"
Write-Host $tip2 -ForegroundColor Cyan
$i2Value = Read-Host
$uri = $iUri+"?"+$i1Name+"="+$i1Value+"&"+$i2Name+"="+$i2Value
$back = Invoke-WebRequest -Uri $uri
$back.Content
}

在iUriTest.ps1文件上右键用PowerShell运行,如下:

基于PowerShell 3.0的web接口测试的更多相关文章

  1. 基于Spring 4.0 的 Web Socket 聊天室/游戏服务端简单架构

    在现在很多业务场景(比如聊天室),又或者是手机端的一些online游戏,都需要做到实时通信,那怎么来进行双向通信呢,总不见得用曾经很破旧的ajax每隔10秒或者每隔20秒来请求吧,我的天呐(),这尼玛 ...

  2. 用DotNetOpenAuth实现基于OAuth 2.0的web api授权 (一)Getting Start

    1. 下载 源码下载 2. build solution,创建虚拟目录: 右健MyContatacts/MyPromo项目,选择Properties,点击左边的Web,点击 Create Virtua ...

  3. 【转】使用Python的Requests库进行web接口测试

    原文地址:使用Python的Requests库进行web接口测试 1.Requests简介 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写, ...

  4. 第三篇 基于.net搭建热插拔式web框架(重造Controller)

    由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并且http上下文不支持跨域,所以我们要重造一个contro ...

  5. 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)

    上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章很多人看了以后,都表示不解,觉得不知道我到底 ...

  6. 谈谈基于OAuth 2.0的第三方认证 [下篇]

    从安全的角度来讲,<中篇>介绍的Implicit类型的Authorization Grant存在这样的两个问题:其一,授权服务器没有对客户端应用进行认证,因为获取Access Token的 ...

  7. 谈谈基于OAuth 2.0的第三方认证 [中篇]

    虽然我们在<上篇>分别讨论了4种预定义的Authorization Grant类型以及它们各自的适用场景的获取Access Token的方式,我想很多之前没有接触过OAuth 2.0的读者 ...

  8. 谈谈基于OAuth 2.0的第三方认证 [上篇]

    对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成.具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份.但是这种由Web应用全权负 ...

  9. 使用 Jmeter 做 Web 接口测试

    接口测试概述 定义 API testing is a type of software testing that involves testing application programming in ...

随机推荐

  1. zoj The 12th Zhejiang Provincial Collegiate Programming Contest May Day Holiday

    http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5500 The 12th Zhejiang Provincial ...

  2. 利用最新版的RubyMine2016.2开发Ruby On Rails 程序

    经过我的前两篇博文 ”Ruby On Rails环境搭建“ 和”Ruby On Rails 环境搭建MySQL数据库连接“ 我们已经具备了开发Ruby On Rails程序的一切要素,但是天天对着do ...

  3. HDU 3037 Saving Beans(Lucas定理模板题)

    Problem Description Although winter is far away, squirrels have to work day and night to save beans. ...

  4. java读properties的通用类,兼容linux和windows

    package util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; / ...

  5. demo06

    city_data.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...

  6. sql 中英文格式的时间转数字格式

    select receiveBillDt,CONVERT(varchar(100), cast(receiveBillDt as datetime), 21),a.LoanDate from Prot ...

  7. ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)

    我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的 ...

  8. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)

    我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为json,xml等),但是如果Controller的自动序列化后的结果不是我们想要的该 ...

  9. Visual studio 中编译错误SQL71006: Only one statement is allowed per batch. A batch separator, such as 'GO', might be required between statements.

    把写好的sql脚本,并在mssqlmanager里面编译成功的存储过程脚本复制到vs项目下,出现错误信息如下:SQL71006: Only one statement is allowed per b ...

  10. 数据结构之,线性表去除等于x的元素

    问题看起来很简单,但是这里有个限制,就是算法的时间复杂度位O(n),空间复杂度为O(1),下面上代码 #include <iostream> #include <string.h&g ...