test-02-test case generate 测试用例生成 EvoSuite 介绍

这篇具有很好参考价值的文章主要介绍了test-02-test case generate 测试用例生成 EvoSuite 介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

拓展阅读

junit5 系列

基于 junit5 实现 junitperf 源码分析

Auto generate mock data for java test.(便于 Java 测试自动生成对象信息)

Junit performance rely on junit5 and jdk8+.(java 性能测试框架。性能测试。压测。测试报告生成。)

拓展阅读

自动生成测试用例

什么是 EvoSuite?

EvoSuite是一个自动生成Java类的JUnit测试套件的工具,其目标是满足代码覆盖率标准,如分支覆盖率。

它采用基于遗传算法的演化方法来生成测试套件。

为了提高可读性,生成的单元测试被最小化,并向测试中添加了捕获被测试类当前行为的回归断言。

使用 EvoSuite

有不同的方式使用 EvoSuite:

1. 命令行中使用 EvoSuite

EvoSuite作为一个可执行的jar文件提供,可以通过以下方式调用:

java -jar evosuite.jar <options>

生成测试套件的命令示例:

java -jar evosuite.jar <target> [options]

其中 <target> 可以是一个类:

-class <ClassName>

或一个包前缀,此时 EvoSuite 尝试为类路径中与该前缀匹配的每个类生成一个测试套件:

-prefix <PrefixName>

或一个类路径条目,此时 EvoSuite 尝试为给定类路径条目中的每个类生成一个测试套件:

-target <jar file or directory>

最重要的选项是设置类路径,使用标准的Java类路径语法:

-projectCP <classpath>

更多选项,请查阅文档:

java -jar evosuite.jar -help

2. Docker Hub 上使用 EvoSuite

EvoSuite在Docker Hub上提供了一个容器镜像。你可以拉取该镜像:

docker pull evosuite/evosuite:<version>

或手动在本地构建该镜像:

git clone https://github.com/EvoSuite/evosuite.git
cd evosuite
docker build -f Dockerfile.java8 . --tag evosuite/evosuite:latest-java-8
docker build -f Dockerfile.java11 . --tag evosuite/evosuite:latest-java-11

可以这样调用 EvoSuite:

docker run -it -u ${UID} -v ${PWD}:/evosuite evosuite/evosuite:<version>-java-<java_version> <options>

它假设要测试的项目位于调用命令的当前目录中。当前目录 ${PWD} 映射到容器内的 /evosuite 目录。这也是 EvoSuite 的工作目录。所有的结果都将映射回主机系统上的目录。-u ${UID} 确保结果具有与启动命令的用户相同的文件所有权。

当 EvoSuite 需要在后台运行时,可以使用 -d 代替 -it

3. 大规模实验运行器

Docker 镜像还提供了一个标签(evosuite/evosuite:<version>-java-<java_version>-experiment),以便轻松运行大规模实验。可以通过从 Docker Hub 拉取该镜像获取:

docker pull evosuite/evosuite:<version>-experiment

或手动在本地构建该镜像:

git clone https://github.com/EvoSuite/evosuite.git
cd evosuite
git checkout <version> # 例如 git checkout v1.1.0
docker build -f Dockerfile.java8-experiment . --tag evosuite/evosuite:<version>-java-8-experiment
docker build -f Dockerfile.java11-experiment . --tag evosuite/evosuite:<version>-java-11-experiment

实验运行器可以这样调用:

docker run -it -u ${UID} -v ${PWD}:/evosuite evosuite/evosuite:<version>-java-<java_version>-experiment [<options>] <configurations_file> <projects_file>

它假设当前工作目录下有一个名为 projects 的文件夹,其中包含每个要测试项目的子目录,包含该项目的所有jar文件。当前目录还应包含两个csv文件:

  • 一个用于实验不同配置的文件,包含两列用于 configuration_nameuser_configuration
  • 一个用于每个项目的类的文件,包含两列用于 project_name(应与 projects 下的文件夹相同)和 class(应为完整的类路径)

例如,目录结构的示例为:

./projects/<project1_name>/<project 1的第一个jar文件>
./projects/<project1_name>/<project 1的第二个jar文件>
./projects/<project2_name>/<project 2的jar文件>
./configurations.csv
./projects.csv

configurations.csv 文件的内容示例为:

configuration_name,user_configuration
default60,-generateMOSuite -Dalgorithm=DynaMOSA -Dsearch_budget=60 -Dassertion_timeout=120 -Dminimization_timeout=120
default120,-generateMOSuite -Dalgorithm=DynaMOSA -Dsearch_budget=120 -Dassertion_timeout=120 -Dminimization_timeout=120

镜像已经提供了 projectCPclassseed 和输出位置的配置。

projects.csv 文件的内容示例为:

project_name,class
<project1_name>,com.project1.application

该镜像将实验的输出放置在以下位置(在当前目录内):

./results/<configuration_name>/<project_name>/<class_name>/logs/<round>
./results/<configuration_name>/<project_name>/<class_name>/reports/<round>/
./results/<configuration_name>/<project_name>/<class_name>/tests/<round>/

运行该镜像时,它将在当前目录中自动生成一个名为 SEEDS 的文件,其中包含它用于实验的种子。如果要复制实验,可以将该文件放回同一位置,而不是创建新的种子,镜像现在将使用这些种子。

如果要手动设置类路径而不是让脚本为您确定一个,可以在每个项目文件夹内放置名为 ‘CLASSPATH’ 的文件,其中第一行是该项目的

类路径。

当 EvoSuite 需要在后台运行时,可以使用 -d 代替 -it

test-02-test case generate 测试用例生成 EvoSuite 介绍,test,测试用例,开发语言,junit,unit testing,开源,java文章来源地址https://www.toymoban.com/news/detail-805476.html

到了这里,关于test-02-test case generate 测试用例生成 EvoSuite 介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • test ui-02-UI 测试组件之 Appium 入门介绍

    正如主页所述,Appium的目标是支持许多不同平台(移动、Web、桌面等)的UI自动化。 不仅如此,它还旨在支持用不同语言(JS、Java、Python等)编写的自动化代码。 将所有这些功能组合到一个程序中是一个非常艰巨的任务,如果不是不可能的话! 为了实现这一目标,Appium有效

    2024年02月03日
    浏览(27)
  • 单元测试自动生成工具Evosuite的安装使用

    1.1介绍 官网: https://www.evosuite.org/ GitHub: https://github.com/EvoSuite 1.2安装插件 (1)直接安装 进入settigs中,点击plugins,搜索Evosuite,点击安装 (2)从官网下载安装 打开网页 https://plugins.jetbrains.com/plugin/18956-evosuite-xenoamess-tpm-/versions ,点击Download按钮下载插件。 选择菜单File

    2024年02月03日
    浏览(35)
  • 3-测试用例(CASE)

    目录 1.什么是测试用例? PS:测试用例的基本要素(4个) PS:评价测试用例的标准 2.测试用例的带来的好处 3.测试用例的设计方法(基于黑盒测试) 3.1.基于需求进行测试用例的设计 3.1.2.功能需求测试分析 3.1.3.非功能需求测试分析 3.2.具体的设计方法 ①等价类 ②边界值 ③判

    2024年02月13日
    浏览(23)
  • 接口测试用例生成工具介绍及应用

    目前,接口测试是开展项目测试实施过程中非常重要的环节,对于新增接口和修改接口更是需要做到应测必测,但是在实施过程中普遍存在一些问题,经分析总结如下: 1.耗时长: 接口测试整体流程较长,对每个字段都需要进行各种校验,且人工进行基础性字段验证的过程极

    2023年04月11日
    浏览(47)
  • 【Linux | Shell】结构化命令2 - test命令、方括号测试条件、case命令

    上篇文章 介绍了 if 语句相关知识。但 if 语句只能执行命令,判断该命令的结果,但在编程中,我们多数情况需要判断一个变量的值是否为空?判断两个变量的值谁更大?判断变量的字符串是否相等?这些判断条件,使用 if 语句无法直接判断。这篇文章介绍 if 语句中只能执

    2024年02月16日
    浏览(29)
  • 测试框架pytest教程(5)运行失败用例-rerun failed tests

    运行这个文件,2个失败,48个通过。 要运行上次失败的测试用例,可以使用 --lf (或 --last-failed )选项来告诉pytest只运行上次运行时失败的测试。 命令行示例: 或者在pytest配置文件(比如pytest.ini)中设置: 这样,pytest会检测上次运行时失败的测试用例,并只运行这些失败

    2024年02月11日
    浏览(27)
  • 如何创建Google test shared library(dll)和static library(lib),并编写测试用例

    从Github下载google test源码 确保本地安装Visual Studio和CMake GUI,本次测试使用VS2017及Cmake GUI 3.20.5 解压googletest-main,打开Cmake GUI,配置源码路径(googletest-main路径),和生成路径(googletest-main/build),需要在生成路径下创建\\\"build\\\"文件夹,记得检查一下MSVC编译器路径在环境变量目录

    2024年02月13日
    浏览(27)
  • 自动生成测试用例_接口测试用例自动生成工具

    写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 将 HAR 格式的数据

    2024年02月05日
    浏览(51)
  • 【easytestapi,文档即测试,自动生成测试用例】

    个人编写的一个开源测试工具,GitHub - easytestapi/easytestapi: 生产力!!! 目前主要用户接口功能自动化测试,其核心思想是文档即测试。 文档是接口文档。通过我定义的标准化的接口文档,可生成测试用例,也可直接执行测试。 目前没有可视化,独立一人编写。希望有兴趣的

    2023年04月08日
    浏览(29)
  • 模型生成自动化测试用例

    自动产生的测试用例本就应该由程序自动执行,这其实也就是NModel推荐的模式。先回过头来看看文章中制作的模型,模型里面将登录、注销、用户名以及密码等要素都抽象出来了,而NModel是以这些抽象出来的动作(登录、注销)和状态(用户名、密码)为依据,产生测试用例

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包