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天前
|
监控 物联网 测试技术
【好用的个人工具】使用Docker部署Dashdot服务器仪表盘
【5月更文挑战第15天】使用Docker部署Dashdot服务器仪表盘
28 11
|
2天前
|
敏捷开发 数据可视化 测试技术
【Docker项目实战】使用Docker部署nullboard任务管理工具
【5月更文挑战第14天】使用Docker部署nullboard任务管理工具
17 2
|
4天前
|
测试技术
如何管理测试用例?测试用例有什么管理工具?YesDev
该文档介绍了测试用例和测试用例库的管理。测试用例是描述软件测试方案的详细步骤,包括测试目标、环境、输入、步骤和预期结果。测试用例库用于组织和管理这些用例,强调简洁性、完整性和可维护性。管理者可以创建、删除、重命名用例库,搜索和管理用例,以及通过层级目录结构来组织用例。此外,还支持通过Excel导入和导出测试用例,以及使用脑图查看用例关系。后台管理允许配置全局别名,如用例状态、优先级和执行结果。
|
5天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
22 3
|
5天前
|
机器学习/深度学习 人工智能 运维
深入探索软件测试:策略、工具与未来趋势
【5月更文挑战第14天】在软件开发的生命周期中,测试环节扮演着至关重要的角色。它不仅保证产品能够达到预定的质量标准,还有助于提前发现并修复潜在的缺陷,从而减少维护成本和提高用户满意度。本文将深入探讨当前软件测试领域的最佳实践,包括测试策略的制定、工具的选择以及面对快速变化的技术环境如何保持测试活动的前瞻性和灵活性。通过分析自动化测试、性能测试和安全测试等关键领域,本文旨在为读者提供一个全面的软件测试指南,同时对未来的发展趋势进行预测。
|
5天前
|
网络安全 Docker 容器
测试开发环境下centos7.9下安装docker的minio
测试开发环境下centos7.9下安装docker的minio
19 1
|
5天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
14 1
|
5天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
29 0
|
5天前
|
测试技术 API
探索软件测试中的自动化工具与挑战
本文探讨了软件测试领域中自动化工具的应用与挑战。通过分析目前主流的自动化测试工具,探讨了其在提高测试效率、减少人工成本、增强测试覆盖率等方面的优势。然而,自动化测试也面临着诸如脆弱性、维护成本高等挑战。最后,提出了一些应对挑战的建议,以期为软件测试领域的自动化工作提供一些启示。
16 1
|
5天前
|
机器学习/深度学习 人工智能 测试技术
提升软件测试效率与准确性的策略与工具
【5月更文挑战第2天】 在软件开发生命周期中,测试阶段是确保产品质量的关键。然而,传统的测试方法往往耗时且容易出错。本文将探讨一系列现代软件测试策略和工具,旨在提高测试效率和准确性。我们将分析自动化测试框架、持续集成(CI)、测试驱动开发(TDD)以及人工智能(AI)在测试中的应用,并讨论如何结合这些技术和方法来优化测试流程。

热门文章

最新文章