Docker分享-用工具来测试Dockertest

简介: Docker分享-用工具来测试Dockertest

Dokcer分享-Dockertest

测试一直是开发不可缺少的一部分,docker官网介绍了如何跑一些简单的测试,来测试你刚刚部署的程序。

我还发现了一个很神奇的事情,我发现,docker这部分,官网中java,和go都是带测试的,唯独python没有,有兴趣你们可以看看放上链接。https://docs.docker.com/language/golang/run-tests/

func TestRespondsWithLove(t *testing.T) {
    pool, err := dockertest.NewPool("")
    require.NoError(t, err, "could not connect to Docker")
    resource, err := pool.Run("docker-gs-ping", "latest", []string{})
    require.NoError(t, err, "could not start container")
    t.Cleanup(func() {
        require.NoError(t, pool.Purge(resource), "failed to remove container")
    })
    var resp *http.Response
    err = pool.Retry(func() error {
        resp, err = http.Get(fmt.Sprint("http://localhost:", resource.GetPort("8080/tcp"), "/"))
        if err != nil {
            t.Log("container not ready, waiting...")
            return err
        }
        return nil
    })
    require.NoError(t, err, "HTTP error")
    defer resp.Body.Close()
    require.Equal(t, http.StatusOK, resp.StatusCode, "HTTP status code")
    body, err := io.ReadAll(resp.Body)
    require.NoError(t, err, "failed to read HTTP body")
    // Finally, test the business requirement!
    require.Contains(t, string(body), "<3", "does not respond with love?")
}

测试应用程序还有许多不同的方法,这个例子只有高级的功能,应用层测试,之后还有自动化管道。

测试使用了ory/dockertest Go模块

主要是想分享为什么要用Dockertest?

当我们在开发的时候,大多数的服务都需要应用的数据库,所以与数据库服务进行单元测试就会很麻烦,要耗费额外的精力,可能要去模拟数据库,找一些假数据来测试,有时候可能因为一些小的更改就需要重写一些模拟function。为了避免这种情况,可以用真实的数据库去测试这些特定的服务,这就需要对容器有一个很好的控制,docker是运行单元测试的完美系统,因为他可以在几秒钟内启动容器,在测试完成时终止他们。Dockertest库久提供了非常好用的命令来启动Docker容器,并应用于测试当中。


相关文章
|
25天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
89 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
14天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
12天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
13天前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
24 2
|
23天前
|
存储 缓存 Kubernetes
docker的替代工具有哪些?
【10月更文挑战第28天】docker的替代工具有哪些?
91 1
|
24天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
24 1
|
1月前
|
运维 监控 数据可视化
Docker容器可视化管理工具 - WGCLOUD基础介绍
WGCLOUD是新一代运维监测平台,它可以监控Docker容器的各种性能数据,比如内存,cpu,Image,运行时间,运行状态,端口映射等信息
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
51 2
|
1月前
|
测试技术
黑盒功能测试工具UFT的使用
黑盒功能测试工具UFT的使用
37 0
黑盒功能测试工具UFT的使用
|
11天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
下一篇
无影云桌面