Ara*_*eba 1 docker wiremock docker-compose wiremock-standalone
我已经创建了这个Dockerfile并将其复制到/my/project/wiremock目录中,基于https://github.com/rodolpheche/wiremock-docker中的示例:
FROM openjdk:8-jre-alpine
ENV WIREMOCK_VERSION 2.27.1
RUN apk add --update openssl
# fix "No Server ALPNProcessors" when using https
RUN apk add --update libc6-compat
RUN ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
# grab su-exec for easy step-down from root
# and bash
RUN apk add --no-cache 'su-exec>=0.2' bash
# grab wiremock standalone jar
RUN mkdir -p /var/wiremock/lib/ \
&& wget https://repo1.maven.org/maven2/com/github/tomakehurst/wiremock-jre8-
standalone/$WIREMOCK_VERSION/wiremock-jre8-standalone-$WIREMOCK_VERSION.jar \
-O /var/wiremock/lib/wiremock-jre8-standalone.jar
WORKDIR /home/wiremock
EXPOSE 7070 7443
CMD java $JAVA_OPTS -cp /var/wiremock/lib/*:/var/wiremock/extensions/*
com.github.tomakehurst.wiremock.standalone.WireMockServerRunner
Run Code Online (Sandbox Code Playgroud)
然后我在/my/project/目录中创建了以下docker-compose.yml文件
version: '3'
services:
wiremock:
image: rodolpheche/wiremock:latest
container_name: miplata-wiremock-local
build: ./wiremock/.
ports:
- "7070:8080"
- "7443:8443"
volumes:
- ./wiremock/stubs:/home/wiremock
Run Code Online (Sandbox Code Playgroud)
/my/project/wiremock/stubs内的子目录是映射和__files。
当我执行时docker-compose up,docker容器工作,我可以发出一些工作正常的请求。但我的问题是,存根目录内的更改不会自动刷新,然后每次创建新的wiremock存根或更新现有存根时,我都需要重新启动容器。
你知道我是否做错了什么吗?如果不重新启动容器就可以继续工作,那就太好了。
谢谢!!!!
我的建议是将映射和响应主体存储在文件中。
默认情况下:
mappings文件夹中__files文件夹中。据我所知,wiremock 独立 java 进程执行以下操作(无论它是在主机上还是在容器中运行):
POST调用__admin/mappings/reset才能重新加载映射。对于问题描述中的示例,cURL 命令如下所示curl -X POST http://localhost:7070/__admin/mappings/reset请参阅下面的映射和响应正文文件:
{
"request": {
"method": "GET",
"url": "/hello"
},
"response": {
"status": 200,
"bodyFileName": "hello.json"
}
}
Run Code Online (Sandbox Code Playgroud)
{
"message": "Hello World !"
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这一切就像一种魅力。Wiremock 是一款令人惊叹的软件,对于使用不同用例的存根测试端点非常有用。
| 归档时间: |
|
| 查看次数: |
8031 次 |
| 最近记录: |