接口测试Ⅴ——Moco框架、Fiddler、webservice

文章目录

一、Mock

1、Mock测试

  • 介绍
    • mock:就是对于一些难以构造的对象,使用虚拟的技术来实现测试的过程
    • mock测试:在测试过程中,对于某些不容易构造或者不容易获取的对象,可以用一个虚拟的对象来代替的测试方 法。
    • 接口Mock测试:在接口测试过程中,对于某些不容易构造或者不容易获取的接口,可以用一个模拟接口来代替。
  • 作用
    • 解除对第三方接口的依赖
    • 替换查询速度较慢的接口
    • mock难以构造的异常
    • 可以搭建mock服务器,提前编写接口测试用例代码并行进行工作。
  • 实现方式
    • 使用第三方的mock平台来实现mock(收费)
    • 自己开发一个mock平台(了解)
      • python + flask 实现mock
    • 使用mock工具搭建一个mock平台(知道)
      • 使用moco工具实现mock平台

2、Python + Flask实现mock平台搭建

  • 介绍:flask是一个基于python开发的轻量级web应用程序框架
  • 安装flask:
    • 安装: pip install Flask
    • 验证: flask --version
  • 演示案例:
    • 编写Flask程序
import json
from flask import Flask, jsonify,request

# 创建一个应用对象
app = Flask(__name__)

# 定义视图函数,设置路由规则
@app.route("/index")
def index():
	print("访问的index主页")
	return "hello mock"

# {"mobile":"13800000002", "password":"123456"}
@app.route("/api/sys/login",methods=["POST"])
def login():
	result = json.loads(request.get_data().decode("utf-8")) # 字典形式的请求体数据
	mobile = result.get("mobile")
	password = result.get("password")
	print(mobile,password)
	if mobile =="13800000002" and password == "123456":
	data = {
		"success": True,
		"code": 10000,
		"message":"操作成功!",
		"token": "ajsdfj-12312-szs-fd-dfs"
	}
	else:
	data = {
		"success": False,
		"code": 99999,
		"message": "抱歉,系统繁忙,请稍后重试",
		"token": None
	}
	return data


if __name__ == '__main__':
	# 启动WEB服务器
	app.run()
  • 启动运行
    • 手动运行
    • pycharm运行
  • 访问
    • get(浏览器)
    • post(postman)

3、Moco框架

3.1 介绍

  • Moco是一个简单搭建模拟服务器的框架(工具),可以模拟http、https、socket等协议
  • 基于Java开发的开源项目,Github地址:https://github.com/dreamhead/moco
  • 原理:Moco会根据一些配置,启动一个真正的HTTP服务(会监听本地的某个端口)。当发起的请
    求满足某个 条件时,就会返回指定的响应数据

3.2 环境搭建

  • 前提:Java运行环境
  • 安装:moco-runner-1.1.0-standalone.jar

3.3 运行Moco

1、创建配置文件

[
	{
		"description": "首页",
		"request": {
			"uri": "/index"
		},
		"response": {
			"text": "hello world"
		}
	}
]

2、启动http服务

java -jar <path-to-moco-runner> http -p <monitor-port> -c <configuration-file>
<path-to-moco-runner> :jar包的路径

<monitor-port>:http服务监听的端口

<configuration-file>:配置文件路径

3、接口访问

3.4 常用配置参数

3.4.1 定义请求方法

通过在requests中通过method来指定请求方法

3.4.2 定义查询参数

可以通过queries来定制

3.4.3 定义请求头

通过headers参数定义

3.4.4 定义form格式的请求体

通过forms定义表单格式请求体
3.4.5 定义json格式的请求体
可以通过json参数定义请求体
3.4.6 设置响应的状态码
3.4.7 设置返回json格式的响应体数据
3.4.8 解决中文乱码问题
设置响应的Content-Type类型中charset=gbk
3.5 Moco引入配置文件
首先需要定义被依赖的多个配置文件
login.json的文件
index.json文件
定义config.json配置文件
把三个数据文件放在一起
重新使用java命令通过-g参数指定config.json
完整命令是:

java -jar moco-runner-0.11.0-standalone.jar http -p 8092 -g config.json

二、Fiddler

详情

1、 抓包工具

  • 通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站
  • 通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行BUG定位与描述
  • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

2、Fiddler原理

  • 请求先发送给Fiddler,Fiddler接收请求后转发给服务器
  • 服务器处理请求后将响应数据返回给Fiddler,Fiddler在转发给客户端(浏览器)

3、基础使用

抓包、删除请求、设置过滤

4、高级使用

设置断点、AutoResponder、Composer、弱网测试、HTTPS请求

三、webservice

1、webservice介绍

  • 简单的说webservice是一个跨语言跨平台的技术。
  • 使用webservice进行接口测试时,不需要知道每一种语言和操作系统。

2、webservice的工作原理

  • webservice主要使用4个核心技术
    • HTTP:使用http来传输数据
    • XML:使用XML来规定数据的请求体内容和响应体内容.webservice能够跨语言和跨平台的原因就是因为XML能跨语言,跨平台
    • SOAP:是一个规定XML内容规范的一个协议。(规定XML中结构、元素、参数的作用和使用方法)
    • WSDL:是一个XML形式的说明书,用来描述webservice中的相关信息(接口信息)

3、webservice和http接口区别

  • http接口
    • http接口一般传输的是表单数据和json数据,响应数据也一般是json类型
    • http接口请求方法,一般是GET,POST,PUT,DELETE
  • webservice接口
    • webservice采用soap协议传输数据。请求数据和响应数据都是XML类型
    • webservice的请求方法都是POST请求
    • webserivce支持更复杂的数据类型

4、webservice的接口测试工具

  • Postman(主要学习)
  • Jmeter
  • SoupUI
  • Python + requests

5、 演示案例

操作步骤:
1. 新建请求 getSupportCity
2. 设置请求方式为POST
3. 输入请求URL: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
4. 设置请求头: Content-Type: application/soap+xml; charset=utf-8
5. 设置请求体数据:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<getSupportCity xmlns="http://WebXml.com.cn/">
			<byProvinceName>北京</byProvinceName>
		</getSupportCity>
	</soap12:Body>
</soap12:Envelope>
6. 发送请求,查看响应结果

原文地址:https://blog.csdn.net/qq_31870305/article/details/116310074

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1.使用ajax调用varxhr;functioninvoke(){if(window.ActiveXObject){xhr=newActiveXObject("Microsoft.XMLHTTP");}else{xhr=newXMLHttpRequest();}//指定请求地址varurl="http://127.0.0.1:7777/hello?wsdl";//
               好不容易把WebService服务器端搭建起来,我们还需要客户端程序也同样跑起来才能够进行和服务器端程序的通信: 在这篇文章里面,我会先自己写代码去实现调用WebService服务器端程序,接下来,通过IDEA配置的方式来调用WebService服务端: 首先,我写了一个W
1新建一个工程项目用来做服务端增加一个MyService1类文件packagecom.zns.ws;importjavax.jws.WebMethod;importjavax.jws.WebService;importjavax.xml.ws.Endpoint;@WebServicepublicclassMyService1{publicstaticvoidmain(String[]args){
packagecom.transsion.util;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importcom.alibaba.druid.util.Base64;importcom.tra
再生产wsdl文件时重写描述文件1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Web;5usingSystem.Web.Services.Description;67namespaceStrongSoftManage.Web.App8{9publicclassSoapExtens:SoapExtensi
一般情况下,使用eclipse自带的jax-ws生成webservice会自动生成2个类:ContractConnector.java packagecom.wonders.webservice.contract;importjava.text.DecimalFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;i
一、WebService概述1.1什么是WebService 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 一个跨语言、跨平台的规范(抽象)所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务
一、什么是CXF?    ApacheCXF=Celtix+Xfire,开始叫ApacheCeltiXfire,后来更名为ApacheCXF了,以下简称为CXF。ApacheCXF是一个开源的webServices框架,CXF帮助您构建和开发webServices,它支持多种协议,比如:SOAP1.1,1,2 XML/HTTP、RESTful或者CORBA。  
工具IDEA一、构建项目1、选择SpringInitializr2、填写项目信息3、勾选webService4、勾选Thymeleaf5、项目建立完成,启动类自动生成二、写个Controller启动服务。浏览器访问/hello接口。 
1.环境win764位,vs20102.新建一个asp.netweb应用程序(同上一篇)3.添加一个web引用,引用上一篇创建的服务。注意不是服务引用。如下图 
WebService之WSDL文件讲解   恩,我想说的是,是不是经常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户给你一个WSDL文件,说按照上面的进行适配,嘿嘿,这个时候,要是你以前没有开发过,肯定会傻眼,那如果你想学习的话,就认真的看下面的讲解咯:一、WSDL概述  
在websrvice发布文件的webconfig中加入<httpRuntimemaxRequestLength="102400"/> <webServices>     <protocols>       <addname="HttpPost"/>       <addname="HttpGet"/>     </protocols>   
 代码比较简单,按照如下来操作即可,只是jar包有很多问题,比如找不到classnotFondspring、以及找不到xfile.xml、以及xfile.xml中的一个参数问题,以及2.0 spring。jar和spring1.6.2冲突问题,总之这个小demo报了一堆错误,其实都是jar的问题,为了让大家减少这方面的错误,所以我提供
 一、soapUI简介SOAP:   WebService通过Http协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息头的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService。 
参考,感谢https://blog.csdn.net/hj7jay/article/details/727224381.环境:win764位,jdk1.8.0_201 EclipseJavaEEIDEforWebDevelopers.Version:Mars.1Release(4.5.1)2.创建一个普通的java项目,名字是TheService在src目录下创建一个com.hyan.service包,在此包下创建
CXF实现RestfulWebService基础示例一、写在前面IDE:IDEA14JDK:1.7CXF:2.6.2示例来源:%CXF_HOME%\samples\jax_rs\basic发布方式:JAXRSServerFactoryBean的create()方法调用方式:URL的openStream()方法、HttpClient的executeMethod()方法二、服务端(Java项目)1.准备Jar包
封装helper类:classWebServiceHelper{///<summary>///1.get请求http方法///</summary>///<paramname="url">基础url</param>///<paramname="method">请求方法</param>///<paramnam
.net客户端调用java或.netwebservice进行soapheader验证最近项目中有业务需要跨平台调用web服务,客户端和服务器之间采用非对称加密来保证数据的安全性,webservice的安全验证基于soapheader。借此机会,顺便整理一下调用.netwebservice和javawebservice的验证方式,记录下来。
Node.jshttps://www.cnblogs.com/goldlong/p/8027997.htmlQQ音乐apihttps://juejin.im/post/5a35228e51882506a463b172#heading-11?tdsourcetag=s_pcqq_aiomsgGit把本地仓库上传到GitHbubhttps://blog.csdn.net/zamamiro/article/details/70172900git删除本地仓库https://blog.cs
转载自:孤傲苍狼 WebService学习总结(三)——使用JDK开发WebService一、WebService的开发手段使用Java开发WebService时可以使用以下两种开发手段1、 使用JDK开发(1.6及以上版本)-->详见:本文2、使用CXF框架开发-->详见:其他文章二、使用JDK开发WebServi