用于测试web客户端的模拟web服务器

webmock的Python项目详细描述


webmock这个工具在一个短暂的端口上提供一个进程中的wsgi服务器。
它用于单元测试中,当被测系统建立出的http连接不易被模仿时。

创建一个wsgi应用程序,该应用程序表示您要创建的假web服务器。
这比看上去简单;例如:


def simple_app(environ,start_response):
status='200 ok'
headers=[('content-type','text/plain')]
start_response(status,headers)
return['hello,world!\ n']

接下来,激活测试服务器。
有几种方法可以做到这一点,但是它们都会产生一个端口号。

@模拟服务器(简单应用)
def test_web_请求(端口):
my_client.get_greeting('http://127.0.0.1:{}'。格式(端口))


>或手动启动和停止::

server.start()
my_client.get掼greeting('http://127.0.0.1:{}.format(port))
server.stop()

并允许测试在操作完成后进行断言。

其用法很简单:

mock app

app=mockapp()
使用mock_server(app):
..
app.assert_called_with('get/foo/bar')

请求已发出,并且它匹配``call`
*``assert``any`call(call)``--断言any请求匹配``call`
*``assert``has`u call([call,call,…],any`order=false)``--断言给定的调用都已发生。
如果``any order``为false,调用必须是连续的。

可以用包含方法和路径的字符串来描述调用。


模拟应用程序的行为可以通过一些小的方式进行调整。
对于任何更复杂的应用程序,请构建自定义的wsgi应用程序。

*``mock app(response='403 forbidden')``--自定义http响应(默认为“200 ok”)
*`` mockapp(body='hello world\n')`--自定义响应体(默认为空)
*`` mockapp(headers=[('x-auth','abc123')]`--自定义响应头

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何有选择地将ArrayList内容加载到数据库中   java什么时候应该使用具有单个有界类型参数的泛型类?   java如何在我的安卓活动中的类中使用抽象方法?   java Tomcat/websocket响应错误404   java如何将JSON对象转换为UTF8格式的XML   安卓将字符串值转换为Java类名   创建PSD2上下文时java Bunq开发者API异常   java如何在SDcard(“/SDcard/beam”)上创建文件夹“beam”   java基本身份验证表单适用于/myapp/index。jsp,但不适用于/myapp/?   我无法使用Jena Sparql和Java查询我的本体?   在写模式下打开文件时发生java错误   对getter值进行多if检查的java优化方法   java如何在嵌入式Jetty 8中部署WAR?   在数组或链表末尾插入元素的速度更快的java   java JavaFX文本粘贴在其自身之上   java和java的区别是什么。stream()和stream。属于   上传JSP后的java缩放图像   linux如何用java读取所有网卡