Python+Robotframework框架实现自动化测试

这几天研究对比了几款主流开源自动化测试框架后,发现Python+Robotframework框架的自动化可以大大降低自动化门槛,尤其适合没有自主研发自动化测试工具的团队,低成本的实现自动化测试。

在整个测试行业中,Python有着无可撼动的主导地位。Robotframework就是基于Python语言开发的,可扩展的(可根据自身业务去开发关键字库),是以关键字驱动模式的自动化测试框架。甚至可以让不懂编程的测试人员参与自动化测试中来。

框架的特点

1.编写用例简单,支持以表格,robot,txt,tsv或html的格式编写用例。下面以百度的搜索框热搜推荐词场景为例来展示自动化用例的写作。

图片

Web UI页面自动化测试的步骤:打开浏览器输入百度的网址-搜索输入框输入搜索的关键字-页面展示热搜推荐问题-校验热搜推荐词展示正确,于是转化成自动化测试用例为:

图片

接口自动化测试的步骤:先抓包获取接口请求的地址和参数,发送请求,校验接口响应的状态码和报文,于是转化成自动化测试用例为:

自动化环境搭建 1、Python(推荐使用ActivePython,这个版本PATH已经配好了,也安了一些像pip这样的包) 2、WxPython(安装,保持勾选状态,不要把勾去掉!!!) 3、安装rf,以管理员身份运行cmd, pip install robotframework 4、安装RIDE,以管理员身份运行cmd, pip install robotframework-ride 5、安装Selenium2Library,以管理员身份运行cmd,pip install robotframework-selenium2library 6、安装python32位拓展,以管理员身份运行cmd,pip install pywin32 7、安装DatabaseLibrary , 以管理员身份运行cmd, pip install robotframework-databaselibrary 安装VCForPython27 安装vcredist_x64 安装驱动MySQL-python-1.2.3.win-amd64-py2.7(根据电脑自行选择32,64) 8、pip install pyodbc 需要更新setuptools,运行pip install --upgrade setuptools pip(第一遍报错,在执行一遍命令即可) 然后安装连接pyodbc的驱动mysql-connector-odbc-5.3.9-winx64.msi。(安装到这一步就完成了。下面是测试步骤,所有安装完成后再测试也可以)安装完成后打开   打开数据源添加驱动(添加按钮)   填写完整后点击test返回successful表示成功   选择库 打开robot新建测试用例输入如下内容   Connect To Database Using Custom Params 连接数据库的关键字 pyodbc 连接数据库的工具 database='test', 数据库的名字 user='root', 连接数据库的用户名 password='', 密 码 host='127.0.0.1', 数据库的IP port=3306, 数据库的端口号 Driver='{MySQL ODBC 5.3 Unicode Driver}' 数据库的驱动 query 查询语句 Disconnect From Database 断开连接数据库   Execute Sql String     执行sql语句 9、安装AutoItLibrary库(模拟键盘鼠标操作) 安装(选择x64安装) (路径改一下,因为program files(x86)路径win系统似乎会禁止读写,改成c:\AutoIt3即可) 安装 解压后,使用cmd(管理员启动),cd到包目录执行python setup.py install命令安装 9、pip freeze检查安装包 启动ride: 命令进入ride: 1:cmd; 2:cd c:\; 3:cd Python27; 4:cd Scripts; 5:输入命令:python ride.py。
<think>好的,我需要帮助用户了解如何使用PyCharm和RobotFramework实现UDS协议的自动化测试。首先,我需要整合用户提供的引用信息,并结合UDS测试的需求来构建答案。 首先,用户提到的引用[1]到[4]都是关于在PyCharm中配置RobotFramework环境以及编写UI自动化测试用例的内容。但是UDS协议属于汽车诊断协议,可能需要特定的库或工具支持。因此,我需要考虑如何在RobotFramework中集成UDS相关的库。 接下来,用户需要教程、示例代码和配置指南。根据引用[4],配置环境需要安装RobotFramework和相关库,比如Selenium2Library。但对于UDS测试,可能需要类似robotframework-uds或自定义的库。我需要检查是否存在这样的库,或者是否需要用户自己开发关键字。 另外,引用[3]提到在PyCharm中安装Robot插件,这对于编写测试用例是必要的。同时,引用[2]涉及解决运行问题,比如no pybot错误,这可能与运行配置有关,需要指导用户正确配置PyCharm的运行环境。 然后,示例代码部分可能需要创建测试用例文件,导入UDS库,并使用关键字发送诊断请求。例如,发送诊断会话控制请求或读取数据标识符。如果现有的库不支持,可能需要使用Python编写自定义库,并集成到RobotFramework中。 最后,配置指南应包括安装必要的库、设置PyCharm插件、编写测试用例、处理依赖和运行测试。同时,需要提醒用户可能遇到的问题,比如库的兼容性或环境配置错误,并参考已有的解决方案,如引用[2]中提到的处理no pybot的问题。 总结步骤: 1. 环境配置:安装RobotFramework、PyCharm插件、UDS相关库。 2. 创建测试项目:配置PyCharm,导入必要的库。 3. 编写测试用例:使用Robot语法调用UDS关键字。 4. 处理依赖和运行:确保环境变量和路径正确,解决常见错误。 5. 提供示例代码和可能的扩展方法,如自定义库。 需要验证是否有现成的UDS库可用,或者是否需要建议用户开发自定义关键字。如果不存在现成的库,可能需要指导用户如何利用Python的UDS工具(如CANoe或python-uds)来创建RobotFramework的关键字。</think>以下是基于PyCharm和RobotFramework实现UDS协议自动化测试的配置指南及示例: --- ### 一、环境配置 1. **安装RobotFramework及相关库** 在PyCharm的终端中执行以下命令: ```bash pip install robotframework pip install robotframework-uds # 假设存在UDS协议库(若无需自行开发) pip install pyserial # 若涉及串口通信 ``` 2. **安装PyCharm Robot插件** - 打开PyCharm → `Settings` → `Plugins` → 搜索`Robot Framework Language Server`并安装[^3]。 - 重启PyCharm后支持`.robot`文件的语法高亮和关键字自动补全。 --- ### 二、项目配置 1. **创建测试项目** - 新建目录结构: ``` tests/ ├── uds_keywords.robot ├── test_cases.robot └── uds_library.py # 自定义UDS协议库(可选) ``` 2. **配置UDS协议依赖** - 若使用硬件设备(如CAN卡),需安装驱动(如Vector XL Driver)。 - 若通过TCP/IP通信,配置目标ECU的IP和端口。 --- ### 三、示例代码 1. **基础测试用例** 在`test_cases.robot`中编写: ```robotframework *** Settings *** Library UDSLibrary # 假设存在UDS协议库 Library Collections *** Test Cases *** 验证诊断会话控制 [Setup] Connect To ECU port=COM1 baudrate=115200 Send UDS Command 0x10 0x03 # 进入扩展会话 ${response} = Receive UDS Response Should Contain ${response} 0x50 03 # 预期肯定响应 [Teardown] Disconnect ECU 读取数据标识符 Connect To ECU protocol=TCP ip=192.168.0.1 ${data} = Read Data By Identifier 0xF189 # 示例DID Log ${data} Should Be Equal As Integers ${data[0]} 0x62 # 响应格式校验 ``` 2. **自定义关键字(Python扩展)** 在`uds_library.py`中实现通信逻辑: ```python from uds import UdsClient # 假设使用python-uds库 class UDSLibrary: def __init__(self): self.client = UdsClient() def connect_to_ecu(self, protocol, **kwargs): if protocol == "TCP": self.client.connect(kwargs['ip'], kwargs['port']) elif protocol == "SERIAL": self.client.serial_connect(kwargs['port'], kwargs['baudrate']) ``` --- ### 四、运行配置 1. **设置PyCharm运行命令** - 打开`Run/Debug Configurations` → 添加`Robot Framework`任务。 - 指定测试文件路径和输出目录: ``` Target: tests/test_cases.robot Output: reports/ ``` 2. **解决常见问题** - **错误“No module named 'uds'”**:通过`pip install python-uds`安装依赖[^2]。 - **CAN通信超时**:检查硬件连接和协议参数(如波特率、ID配置)。 --- ### 五、扩展优化 1. **数据驱动测试** 使用`[Template]`实现参数化测试: ```robotframework *** Test Cases *** 多DID读取测试 [Template] 读取指定DID并校验 0xF189 0x62 0xF190 0x63 *** Keywords *** 读取指定DID并校验 [Arguments] ${did} ${expected_prefix} ${data} = Read Data By Identifier ${did} Should Start With ${data} ${expected_prefix} ``` 2. **集成CI/CD** 通过Jenkins调用命令执行测试: ```bash robot --outputdir reports/ tests/ ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值