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容器,并应用于测试当中。


相关文章
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
210 17
Selenium:强大的 Web 自动化测试工具
|
1月前
|
存储 监控 C++
11 个必备 Docker 工具
11 个必备 Docker 工具
374 11
11 个必备 Docker 工具
|
2月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
59 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
1月前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
58 1
|
2月前
|
监控 测试技术 开发工具
移动端性能测试工具
移动端性能测试工具
67 2
|
2月前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
326 2
|
2月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
5天前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5天前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。

热门文章

最新文章