RobotFramework框架之导入自己打包的python程序(十五)

本文介绍了如何使用RobotFramework时,当第三方库不能满足需求时,如何通过编写Python模块和使用setup函数打包,以及在RobotFramework测试套件中导入和使用自定义包的过程。

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

 引言

RobotFramework自动化框架(以下简称RF)之前文章我们讲了通过import第三方的library(RequestsLibrary等),在实际项目中第三方的包并不能满足我们的需要,此时我们可自己编写python模块(.py文件)或者包,以实现特定的功能。

下面以一个简单的例子讲解如何在RF中引用自己打包的python包。

功能描述:编写一个python程序,实现数字的运算。

1、使用setup函数打包python程序

1.1 创建一个python文件为NumerCalc.py,并定义一个同名的class。(RF导入单个的python文件时需要文件名和class名为同一个)

#导入keyword,定义中文name,方便RF中使用
from robot.api.deco import keyword

class NumberCalc(object):

  @keyword (name="两个数之和")
  def number_sum(self,number_a:int,number_b:int):
  	return number_a + number_b

1.2 将NumerCalc.py存放目录NumberCalc中,并创建空文件__init__.py,同时创建version.py用于存放版本号。

  • 整体目录结构:

  • version.py文件用于配置版本号

1.3 在umberCalc同级目录下创建setup.py文件用于打包python程序。

setup.py文件内容如下

import os
from distutils.core import setup
#获取版本号
version_file = os.path.join(os.path.dirname(__file__), "NumbeCalc", 'version.py')
exec(compile(open(version_file).read(), version_file, 'exec'))

setup(name='NumbeCalc',
			version=VERSION,
			description='xxxxxxx',
      author='xxxxxxxx',
      author_email='xxxxxxx@123.com',
      install_requires= [],
      packages=['NumbeCalc'],
      classifiers=[
      "'Programming Language :: Python :: 3',"
      ],
      package_data={
      '': ['*.ini'],
      'bandwidth_reporter': ['*.ini']
      },
      )
#以下是一些参数的介绍
'''
name : 打包后包的文件名
version : 版本号
author : 作者
author_email : 作者的邮箱
py_modules : 要打包的.py文件
packages: 打包的python文件夹
include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name’: [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
license : 支持的开源协议
description : 对项目简短的一个形容
ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
ext_package : 定义extension的相对路径
requires : 定义依赖哪些模块
provides : 定义可以为哪些模块提供依赖
data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。
'''

1.4 打开cmd命令,进入以上目录,执行python setup.py sdist,会生成tar.gz结尾的压缩文件。

压缩文件位于如下目录:

1.5 在当前目录解压NumbeCalc-1,0.0.tar.gz,执行以下图中命令python setup.py install安装到默认目录,用于程序引用。

1.6 进入python默认的包安装目录,NumberCalc已经安装到该目录下。

2 RF导入安装的python包

2.1 打开RF的UI界面,在testsuite中导入library。

2.2 导入成功后按F5查看keywords。

2.3 在testcase中引用该keyword,传入参数。

2.4 点击run执行用例。

总结:基于不同的项目要求灵活实现导入功能。

  • RF支持在testsuite直接导入library
  • RF支持先在resource文件导入library,创建userkeyword,然后在testsuite中导入resource文件

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳

robotframework调⽤python类⽅法_(五)RobotFramework基 础。。。 上⼀⼩节,你已经感受到了 Robot Framework 的基本说法,这⼀⼩节你将会看到 Robot Framework 更多强⼤的⽤法。 if 语句 通过 "run keyword if" 关键字可以编写 if 分⽀语句。 *** Test Cases *** test case8 ${a} Set variable 59 run keyword if ${a}>=90 log 优秀 ... ELSE IF ${a}>=70 log 良好 ... ELSE IF ${a}>=60 log 及格 ... ELSE log 不及格 ⾸先定义变量 a 等于 59 。 If 判断 a ⼤于等于 90 ,满⾜条件 log 输出 "优秀 "; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 70 ,满⾜条件 log 输出 "良好"; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 60 ,满⾜条件 log 输出 "及格"; 上⾯的条件都不满⾜,else log 输出"不及格"。 注意 sele if 和 else 前⾯的三个点点点(...) for 循环 在 Robot Framework 中编写循环通过 ":FOR" 。 1、循环 0~9 。 *** Test Cases *** test case9 :FOR ${i} IN RANGE 10 \ log ${i} 通过":FOR"定义 for 循环;IN RANGE ⽤于指定循环的范围。 2、遍历列表。 *** Test Cases *** test case10 @{abc} create list a b c : FOR ${i} IN @{abc} \ log ${i} "create list" 关键字⽤来定义列表(a,b,c),"@{}"⽤来存放列表。通过过 ":FOR" 循环来来遍历@{abc}列表中的字符。 强⼤的 Evaluate 为什么说"Evauate"关键字强⼤呢。因为通过它可以使⽤ Python 语⾔中所提供的⽅法。 1、 ⽣成随即数 在 Python 中我们可以这样来引和并使⽤⽅法: C:\Users\fnngj> python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import random >>> random.randint(1000, 9999) 9777 random 模块的 randint()⽅法⽤于获取随机数。 在 Robot Framework 中使⽤ "Evauate" 也可以调⽤ Python 所提供的 random 模块下的 randint()⽅法。 *** Test Cases *** test case11 ${d} Evaluate random.randint(1000, 9999) random log ${d} 2、 调⽤⾃⼰编写的 Python 程序 ⾸先创建 D:/rf_test/count.py ⽂件。 def add(a,b): return a + b if __name__ == "__main__": a = add(4,5) print(a) 通过add函数实现两个数相加,这是再简单不过的⼩程序了。 下⾯就通过 Robot Framework 调⽤ count.py ⽂件中的 add()函数。 *** Test Cases *** test case12 Import Library D:/rf_test/count.py ${a} Evaluate int(4) ${b} Evaluate int(5) ${add} add ${a} ${b} log ${add} 在 Robot Framework 中所有的内容都是字符串类型,所以,需要通过 "Evaluate" 将 4 和 5 转化为 int 类型后,再调⽤ add 计算两个 数的和。 注释 Robot Framework 中添加注释也⾮常简单。"Comment" 关键字⽤于设置脚本中的注释。除此之外,你也可以像 Python ⼀样使 ⽤"#"号进⾏注释。 *** Test Cases *** test case13 Comment 这是注释 #这也是注释 如果你熟悉 Python 编程语⾔,那么 Robot Framework ⼏乎没有实现
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科雷learning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值