Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明

简介: [本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里需要动态的在脚本运行时为脚本添加四行内容: # -*- coding: utf-8 -*- import os import sys sys.path.append("'+Auty的根目录路径+'") 并且在脚本运行完成后删除这四行。

[本文出自天外归云的博客园]

本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里需要动态的在脚本运行时为脚本添加四行内容:

# -*- coding: utf-8 -*-
import os
import sys
sys.path.append("'+Auty的根目录路径+'")

并且在脚本运行完成后删除这四行。对应要修改execute_selection.py文件:

# -*- coding: utf-8 -*-
from .read_selection import read_selection
import os
import time
from .exe_deco import exe_deco
from .write_log import write_log
from utils.utils import str_2_tuple
from utils.utils import get_local_time
from utils.utils import get_specific_time
from generate_result import generate_result

def execute_selection():
    selection = read_selection()
    genTime = get_local_time()
    resultFileName = genTime+' test_result.csv'
    autyPath = os.getcwd()
    #Save the auty path into file.
    pathFilePath = os.path.join(autyPath,'utils','root_path.py')
    writeContent = '# -*- coding: utf-8 -*-\n'+'autyPath=\''+autyPath+'\''
    open(pathFilePath,'w').write(writeContent)
    #Result generation.
    resultFilePath = os.path.join(autyPath,'results',resultFileName)
    generate_result(resultFilePath,('scriptPath','detail','startTime','endTime','duration'))
    for scriptPath in selection:
        result = str_2_tuple(scriptPath)
        startTime = get_specific_time()
        ret,result2 = execute_script(scriptPath,autyPath)
        endTime = get_specific_time()
        duration = (endTime-startTime).microseconds*0.000001
        result = result+result2+str_2_tuple(startTime)+str_2_tuple(endTime)+str_2_tuple(duration)
        generate_result(resultFilePath,result)

@exe_deco
def execute_script(scriptPath,autyPath):
    #Auto-created code.
    with open(scriptPath,'r') as original:
        data = original.read()
    with open(scriptPath,'w') as modified:
        autyCode = '# -*- coding: utf-8 -*-\nimport os\nimport sys\nsys.path.append("'+autyPath+'")\n'
        modified.write(autyCode+data)
    #Execute script.
    write_log('execute_script: '+scriptPath)
    os.system('python '+scriptPath)
    #Auto-deleted code.
    lines = open(scriptPath).readlines()
    del lines[3]
    del lines[2]
    del lines[1]
    del lines[0]
    open(scriptPath,'w').writelines(lines)

其中我们把autyPath变量的值(Auty根目录路径)保存到了utils目录下的root_path.py文件中,以便以后的工作中动态的获取与调用根目录的值。

至此就可以在我们的测试脚本中调用其他包结构文件夹中的脚本啦~例如(注意第二行和第五行,我们可以从utils文件夹中引用脚本了):

接下来为框架添加自动化安装库功能,写一下config.txt文件,对框架功能进行简单说明。在Auty中编写setup.py文件,用来自动化安装requirements文件中所配置的python库(可以通过在当前目录执行pip freeze-> requirements命令自动生成该文件,将会包含你目前环境已经安装过的python库版本信息):

为setup.py文件添加内容如下:

# -*- coding: utf-8 -*-
import os

if __name__ == '__main__':
    installFile = os.path.join(os.getcwd(),'requirements')
    os.system('/usr/local/bin/pip install -r '+installFile)

运行setup.py文件,自动化安装库:

至此我的Auty框架已经搭建完成,后续功能可根据工作需要陆续进行完善。现在写一下config.txt文件:

特别感谢大师兄:朱勃给予的指点和帮助~

 

 

 
 
 
 
相关文章
|
30天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
93 8
|
4天前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
40 15
|
13天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
130 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
25天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
56 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
46 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
3月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
3月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
2月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
54 0
|
3月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。

热门文章

最新文章