robot自动化问题总结

本文档汇总了RobotFramework使用中遇到的常见问题,包括运行报错、导入系统关键字、创建字典、读取字典值、For循环操作、字段串比较等,并提供了相应的解决方法。例如,套件格式应选择'robot',导入多个系统关键字需正确继承库,字段比较需使用单引号等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、运行报错

command: pybot.bat --argumentfile c:\users\wuxj\appdata\local\temp\RIDEsasqcx.d\argfile.txt --listener C:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:50226:False C:\auto
[ ERROR ] Suite 'auto' contains no tests or tasks.

解决方式:套件格式应该选robot

2、导入系统关键字报错

写完或修改完__init__.py文件后需要执行一下

3、运行报错:FAIL : No keyword with name 'read' found.

建一个测试用例的文件夹,再建一个套件,在http这个套件里导入资源就不会报错了

4、导入多个系统关键字

之前写成了下图这样,这样只有一个脚本生效,是错误的。

 正确格式:

# -- coding: utf-8 --
__author__ = 'wuxj'
__version__ = '1.0'

from ssh_login_and_huifang import ssh_login_and_huifang
from read_aisa_file_info import read_aisa_file_info
from return_fileinfo import return_fileinfo

class wuxjLibrary(ssh_login_and_huifang,read_aisa_file_info,return_fileinfo):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

4、创建字典、读取字典格式

读取字典值:${actiondata['smb_sessionid']}

5、FOR循环操作嵌套if

Robot Framework使用For循环 - 彼岸大师 - 博客园

6、字段串比较

变量及字符串都需要加单引号,否则会报错

7、创建列表

8、引用mylibrary失败,语法等都正确,但是ride library引用自定义mylibrary就是报错

pycharm可以运行,ride运行不行,怀疑是sys.path和PYTHONPATH问题,但不是很懂原理

20250224 18:56:54.256 [WARN]: Importing test library "C:\robot_自动化\ndr_bennao\测试用例\attack告警用例\../../wuxjLibrary/" failed

Traceback (most recent call last):
Importing test library 'C:\robot_自动化\ndr_bennao\测试用例\attack告警用例\..\..\wuxjLibrary\' failed: ModuleNotFoundError: No module named 'es_login'
Traceback (most recent call last):
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\lib\robot\utils\importer.py", line 153, in _import
    return __import__(name, fromlist=fromlist)
  File "C:\robot_自动化\ndr_bennao\wuxjLibrary\__init__.py", line 12, in <module>
    from es_login import es_login
PYTHONPATH:
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\python37.zip
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\DLLs
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32\lib
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\Pythonwin
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\spec
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\lib
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\contrib\testrunner\../../lib
  C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\contrib\testrunner\../../lib
  C:\robot_自动化\ndr_bennao
  C:\robot_自动化\ndr_bennao
  C:\Users\admin-pc1102\Desktop
  C:\Users\admin-pc1102\Desktop
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\spec\librarymanager.py", line 87, in _fetch_keywords
    return get_import_result(path, library_args)
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\spec\libraryfetcher.py", line 24, in get_import_result
    lib = robotapi.TestLibrary(path, args)
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\lib\robot\running\testlibraries.py", line 50, in TestLibrary
    return_source=True)
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\lib\robot\utils\importer.py", line 72, in import_class_or_module
    self._raise_import_failed(name, err)
  File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python37-32\lib\site-packages\robotide\lib\robot\utils\importer.py", line 109, in _raise_import_failed
    raise DataError('\n'.join(msg))

解决办法:在__init__.py里将__init__.py父路径添加到path里

import sys
from pathlib import Path
# 获取当前项目根目录
project_root = str(Path(__file__).parent)
print(project_root)


# 将当前项目根目录添加到 sys.path 的开头
if sys.path[0] != project_root:
    sys.path.insert(0, project_root)
print(sys.path)
from UI_operator import UI_operator

9、robot运行过程中输出中文乱码,改这个脚本testrunnerplugin.py,文件在你安装python的目录里

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值