0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

实施自动化测试可能需要具备的技能及具体实践流程

发表时间:2023-09-19 10:01:02

文章来源:炫佑科技

浏览次数:146

菏泽炫佑科技

实施自动化测试可能需要具备的技能及具体实践流程

随着软件开发在汽车制造行业中占据越来越重要的地位,敏捷开发的思想逐渐在汽车制造领域受到重视。 随之而来,汽车厂商对自动化测试的需求也越来越强烈。 。 本文结合丰富的自动化测试经验,简单介绍一下实现自动化测试可能需要的技巧和具体的实践流程。

自动化测试城门-

要实现完全的自动化测试,我们首先要做的就是实现半自动化测试,即编写自动化测试脚本。 俗话说,人生苦短,我用。 作为一种简单易用的高级编程语言,以其“包罗万象”的库,成为测试脚本开发的*佳选择。 这里简单介绍一下测试脚本开发中常用的一些标准库。

城门士兵-os库

在编写测试脚本时,不可避免地会遇到文件路径的获取和编辑。 os库中的path函数可以轻松实现这些操作,比如绝对路径获取os.path.()、路径拼接os.path。 join()、路径存在判断os.path.exist()等; 如果您需要运行 中测试工具提供的命令,那么 os 库的函数或 popen 函数可以让您轻松调用 cmd() 或 shell (Linux) 。

城门士兵-sys库

如果你编写的测试脚本有跨平台运行的需求,可以通过sys库的函数获取脚本的运行环境。 根据不同的运行环境编写不同的批处理命令; sys 库中的 argv 函数还可以为您的测试脚本提供简单的命令行界面。 当你的脚本需要接收外部传递的参数时,可以使用 sys.argv[] 方便地使用。 而如果需要编写更复杂、更友好的命令行界面,则需要使用另一个标准库来实现。

城门队长雷图书馆

正则表达式是编写测试脚本的一项必备技能,因为有时我们会遇到复杂的文本处理,比如在项目文件中找到需要修改的配置,并修改为我们需要的。 这时一般的查找替换功能就很难实现这个功能了。 我们只能借助强大的re库(正则表达式)来解决这个难题。 re库提供的函数有:

pile():编译正则表达式并生成对象;

re.():搜索所有符合条件的字符串; re.match():从**个字符开始匹配模式;

re.():查找**个满足条件的字符串,找到**站;

re.sub():替换符合条件的字符串。

在使用re模块时,我们一般使用pile()将正则表达式编译成一个对象,然后根据这个对象进行匹配等操作。 这样不仅可以提高代码的可读性,还可以提高代码的运行性。 效率。

使用正则表达式进行查找和替换是非常方便的,但是很多时候我们需要在匹配的字符串前后添加内容并保留匹配的内容。 这时候普通的查找替换就很难实现了。

例如:您想在 hour: 格式后添加 :00,形成 hour: : 格式。 这可以通过以下方式实现:

正则表达式查找:

(\d:\d)

用。。。来代替:

\1\:00

这里,我们在替换字符中使用\1来指代正则表达式中**组匹配的内容。 如果正则表达式中有多个组,可以使用\2\3等依次引用。 您可以使用 \0 来引用整个正则表达式。

概括

掌握了基本语法和这三个标准库后,自动化测试的大门就为我们敞开了。 但如果我们想要编写一个可以驱动测试工具进行测试的脚本,我们还需要了解模式下测试工具的接口。 如果该工具提供的接口丰富,我们可以按照方式[1]等操作来配置和执行测试项目,那么我们的测试脚本开发工作就会顺利进行。

然而,如果工具提供的模式接口有限,无法满足测试脚本的需求实施自动化测试可能需要具备的技能及具体实践流程,那么在进入自动化测试大门之后,等待我们的又是另一个棘手的问题:如何解析和修改项目文件。 考虑到大多数项目文件都是XML格式,稍后我们将简单介绍如何解析和修改XML文件。

[1]:这里的模式是指不使用工具GUI,以纯命令行方式使用该工具的模式。

自动化测试瓮城-XML文件

瓮城防御—XML分析

在标准库中,有一个专门处理XML文件的库。 您可以使用它来解析 XML 文件,而无需安装第三方库。 然而,为了准确地从XML文件中解析出所需的信息,我们首先需要简要了解XML文件结构。 以下是一个简单的 XML 文档。

贾达

2005年

30:00

JK.

2005年

29.99

埃里克·T·雷

2003年

39.95

哈利元素的结构如下图

注:图片来自

在此 XML 文本中,根元素是包含文档中所有元素的元素。 该元素有4个子元素:、<>、、

。 每个子元素都包含一个文本内容,但只有子元素标题和元素书有属性。

我们在解析XML时,一般需要获取的是元素的属性值和元素的文本内容。 下面我们简单介绍一下如何获取元素的属性值和文本内容。

XML库提供了一个函数(),可以通过标签名称获取元素。 该函数返回一个包含元素对象的列表。 通过调用元素对象的方法,我们可以轻松获取元素的属性值。 例如,我们可以使用以下命令获取XML文件中**个标题为title的标签的lang属性值:

根.(“标题”)[0]..(“语言”)。

获取**个标签为title的元素的文本信息的代码如下:

根.("标题")[0]..数据

瓮城将军—XML修改

修改XML元素的属性和文本内容非常简单。 上一节获取到对应的元素信息后,就可以直接给它们赋值了。 但是,修改后的信息保存在 XML 对象中。 为了完成对实际XML文件的修改,我们还需要用XML对象中的内容覆盖原始XML文件。 这一步有很多棘手的问题。

在XML文件中,为了避免元素文本内容中存在特殊字符导致解析器错误,在文本内容中引入实体引用来替换可能导致错误的字符,如回车、双引号"、单引号等'。如果使用 xml.dom. 库解析并使用输出的 XML 文件。该库会将这些实体引用转义为它们的实际字符并保存它们。如果不处理 XML 对象中的内容,则导出的 XML 文件将有很多错误。

为了避免这种情况,我们需要使用上一节介绍的正则表达式将这些字符替换为其实体引用。 这个过程要求我们熟练使用正则表达式来搜索和替换文本。

除了XML文件中的实体引用外,如果XML文件中存在中文字符,还有一点需要注意:不要使用with open as读写XML文件,使用open指定文件的编码as 'utf-8' 方法写入 XML 文件。 如下:

f = open(self., 'w', ="utf-8")

dom.(f, ='', ='\t', newl='', ='utf-8')

f.close()

概括

以上两个问题是修改XML文件时经常遇到的问题。 解决了这两个问题之后,我们基本上就可以完美的实现XML文件的修改了。 此时,我们可以编写自动化程度较高的测试脚本,但是仍然无法实现完全自动化的测试,因为我们仍然需要手动执行测试脚本。 那么,我们如何实现测试脚本的自动执行呢? 这就需要我们打通*后一层的自动化测试。

自动化测试通用——

它是一个开源、免费、可扩展的持续集成引擎,主要用于:

为了实现测试脚本的自动化运行,我们需要对Job进行配置,使得当满足设定的触发条件时,会自动搭建测试脚本的运行环境,然后执行测试脚本,并*后将检测结果发送给相关人员。 因此,我们需要了解源代码管理、构建触发器、构建和电子邮件通知设置。

指挥官连击1——源代码管理

服务器*基本的作用是监视版本控制器,并在存储库中有新的更改时检查存储库中的文件。 或者,您可以选择定期查看存储库中的*新文件。 无论哪种方式,与版本控制软件的集成都是必不可少的。

它开箱即用地支持Git、CVS和SVN,并且还通过插件与大量其他版本控制工具集成,例如、、PVCS等。

不同的版本控制软件*终需要的配置也不同,有的甚至差别很大。 但只要你熟悉你所使用的版本控制软件,*后就可以轻松配置版本库。

以SVN为例,为了从SVN仓库获取源代码,我们需要提供对应SVN仓库的URL。 完成URL输入后,将检查URL的有效性。 如果提供的URL需要身份验证,则会自动提示选择。 对应的凭证来验证账户信息,如下图所示。

默认情况下自动化软件开发,给定存储库中的文件会检出到作业中。 如果您需要将代码库检出到指定目录,可以在Local中输入您想要的目录名或相对路径。

如果您需要从多个SVN存储库获取文件,可以单击“添加...”按钮添加其他存储库。

全兵连击 2 — 构建触发器

常用的构建触发器包括定期构建和SCM轮询构建,两者都是使用相同的玉米风格语法设置的,如下图所示。

我们只需要了解玉米风格的语法就可以轻松设置构建触发器。 玉米风格语法由五个以空格分隔的字段组成:HOUR DOM MONTH DOW

对每个字段使用以下值:

一小时内的分钟数 (0-59)

HOUR 一天中的小时数 (0-23)

DOM 本月的天数 (1-31)

月份 月份(1-12)

DOW 一周中的第几天 (0-7),其中 0 和 7 都是星期日

要为一个字段指定多个值,可以使用以下运算符:

“*”代表某个字段的所有可能值。 例如“* * * * *”表示周期为一分钟;

使用“MN”定义范围。 例如DOW中的“1-5”表示周一至周五;

使用“/”定义范围间隔。 例如字段“*/5”表示每5分钟一次;

表示有效值的逗号分隔列表。 例如字段“15, 45”表示每小时第15、45分钟跑步;

通常,我们只需要在该字段中写入一行,但是对于更复杂的调度配置,我们可能需要写入多行。

全兵连击3——建筑

完成前面的配置后,您应该知道何时何地获取测试项目和源代码。 我们现在要做的就是告诉我们拿到测试工程和源码后要做什么。 一般情况下,我们会把之前写好的测试脚本放在测试项目的版本库中,或者从专门的测试脚本库中检出到Job中,所以这里只需要执行写好的测试脚本即可。 。

脚本的执行方式可以根据具体脚本的运行环境而定。 您可以选择执行 Shell 或批处理命令。 因此,我们需要简单了解一下Shell或者的常用批处理命令。 为了避免编写复杂的批处理命令,我们应该尽量在测试脚本中完成工作。 本文以下图所示的简单批处理为例,简单介绍一下构建步骤的编写。

上图中,有两行命令:

**行的作用是将目录从初始目录切换到下一个目录;

第二行的作用是运行目录下的测试脚本.py,并向脚本传递一个参数,就是环境变量,也就是当前作业的名称。

这样就完成了对测试脚本的调用。

指挥官连击4——邮件通知

自动化测试的一个重要部分就是将测试结果通知相关人员,例如开发人员、测试人员或项目经理。 提供了开箱即用的电子邮件支持,我们可以在构建后过程中检查电子邮件,如下图所示。 然后输入需要通知的人的电子邮件地址,这样构建完成后,就会向指定的人发送一封友好的电子邮件。

如果你想高度定制电子邮件内容,那么E-mail无法满足你的需求。 我们需要安装可编辑电子邮件插件Email来实现电子邮件自定义。

在Email中,我们可以用HTML编写邮件的内容,并引用环境变量,这样就可以在邮件中描述当前Job的测试执行概况,让收件人快速了解当前的测试状态。 但这需要我们对HTML和环境变量有更深入的了解。

在某些情况下,我们需要执行一些复杂的工作,例如电子邮件中的数据提取,例如在电子邮件中显示控制台输出中的一些数据。 这种情况下,我们就需要使用email-ext-提供的接口来编写邮件内容。 。

总之,邮件通知功能非常强大,我们可以在自动化测试的工作中继续探索。

概括

本节简单介绍传统表单类型Job。 不过目前的发展方向是Job,这将是一个优先发展的项目。 这意味着应用程序是作为一个实体来设计和支持的,而不是通过连接应用程序中的一堆任务来形成管道。 此类作业可以通过编程来实现,可以实现更复杂的构建逻辑和工作流程。 更重要的是,有专门用于管道编程的结构化DSL,可以轻松实现工作区中的文件共享功能。 它还拥有一个新的可视化界面——Blue Ocean,为每个阶段添加了图形显示,如下图所示。

因此,当我们熟悉了表单类型Job后,我们可以尝试将其转换为Job。 当然,目前并不是所有插件都支持,有些老插件还无法支持。 我们需要根据实际工作情况来选择项目类型。 。

攻城总结

古人云:知己知彼,百战不殆。 虽然通过这篇文章,我们对自动化测试的流程有了全面的了解,但只有在自动化测试的实践中不断探索,才能真正一睹自动化测试的全貌。 作为专业的自动化测试服务商,北汇信息还可以为客户提供优质、全面的自动化测试服务。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多