在Java中通过更改测试用例自动化测试

在Java中通过更改测试用例自动化测试,java,automation,robotframework,Java,Automation,Robotframework,我正在尝试对一个用Java编写的程序进行自动化测试。我的问题是,需要有一种方法来添加/删除更多的测试用例,而无需更改代码 例如,您有两个字符串,希望检查它们是否在字符串列表中。您将字符串传递过来并检查。在Java代码中,我可以生成一个if语句,并检查这两个字符串是否与给定列表中的某个字符串匹配。但是,如果我想从该列表中添加更多字符串进行搜索,我必须返回程序并添加更多代码 也许是个坏例子,但我希望你明白我的意思。当然,可能会有更多完全不同的测试用例。如果我想把这个程序给其他人,他们可能也想添加自己

我正在尝试对一个用Java编写的程序进行自动化测试。我的问题是,需要有一种方法来添加/删除更多的测试用例,而无需更改代码

例如,您有两个字符串,希望检查它们是否在字符串列表中。您将字符串传递过来并检查。在Java代码中,我可以生成一个if语句,并检查这两个字符串是否与给定列表中的某个字符串匹配。但是,如果我想从该列表中添加更多字符串进行搜索,我必须返回程序并添加更多代码

也许是个坏例子,但我希望你明白我的意思。当然,可能会有更多完全不同的测试用例。如果我想把这个程序给其他人,他们可能也想添加自己的程序

我在考虑创建一种模板,其中包含参数和方法名,以便在代码之外调用。基本上是一个有规则的文件。然后,Java代码将解释如何处理给定的规则。我在读这篇文章:但我并没有真正理解它

我的目标是编写一些通用Java代码来解释模板文件并运行其中定义的测试用例。任何帮助都将不胜感激,谢谢

例如:

模板文件

Details:      Checks if String in database
Method:       testID
Arguments:    Hello
Foobar.java

public class Foobar {

    public void testID(String str1)
    {
        // Expected output will be taken from a database
        Assert.assertEquals(str1, expected_output);
    }
}
字符串
str1
可以从参数下的模板文件中获取

问题是,如果我现在想测试str1是否有一定的长度,我必须返回并添加更多的代码。如果这个项目只适合我和我的团队,那就好了。然而,当你把它交给另一家公司或个人,他们不知道如何编码,但他们想运行自己的测试,它就没有那么功能了。这就是为什么我希望,一个不在团队中的人可以添加他们的测试用例,因为他们遵循模板的格式,Java程序将知道如何处理它


对不起,我不知道怎么解释得那么好。希望不要混淆。

有很多方法可以创建和读取Java中使用的测试资源。 可以在.txt文件、xml格式、逗号分隔格式等中使用纯文本字符串

它实际上取决于您尝试注入的测试数据的数量和深度

关于如何使用资源文件或其他文件读取方法,您可以在此处搜索许多问题/答案


这里有一个例子:

据我所知,你的问题

您希望为所有用户提供一个通用框架,每个用户都希望以自己的方式使用它

我的朋友,这就是“关键字驱动框架”的用武之地

更具体地说,正如您所说,您编写了一个函数来“检查列表中的字符串”,但是如果有人想“检查长度”,那么您必须再次编辑您的函数

您所需要做的就是分析您必须支持的不同操作。 比如,检查列表中的字符串,检查字符串的长度,检查列表的大小,检查不在列表中的字符串,将字符串添加到列表中等等

因此,不要编写混合操作的函数!您将其模块化,并将其返回给用户,让他们以自己的方式使用它

因此,如果您声明上述4个关键字(函数)。他们可以按他们想要的顺序叫它

e、 g.然后,测试用例将如下所示:

test1:

check for string in list  <string1>

test2:

check length of string  <string1>
check size of list
check for string not in list  <string1>
test1:
检查列表中的字符串
测试2:
检查字符串的长度
检查列表的大小
检查列表中没有的字符串
您可以为每个函数定义模板,并将信息传递给用户!因此,用户可以根据自己的需要使用这些模块化关键字。机器人框架就是这样做的


希望它有用

如果您向我们展示该项目的结构,那么我们可以提供帮助。在OP中添加了更多内容。谢谢,这就是我一直在寻找的内容。很高兴它有所帮助!:)