En Robot Framework, ¿puedes crear un objeto de recurso similar a las bibliotecas?
En el framework de robot, se puede crear un objeto a partir de una biblioteca. Directamente desde la documentación, se ve así.
*** Settings ***
Library com.company.TestLib WITH NAME TestLib
Mi pregunta es si se puede hacer lo mismo con un archivo de recurso. He estado intentando crear un archivo de palabras clave en Python con variables de instancia que almacenen la hora de inicio de la prueba y el nombre de la prueba. Utilizo el nombre de la prueba y la hora como una ID única en un archivo de datos de JavaScript para la web. Vi que ambos valores volvían al valor predeterminado ‘blank’ y decidí insertar algunas instrucciones de impresión sobre una variable de instancia de ID. Este fue el resultado.
var testRuns = {};
testRuns['Test Site 2 2021-12-09 02:09:19.849706']=[];
testRuns['blank'].push({Case: 'Just Proving the Point.txt', Step: 'Verify Menu HTML', Time: '18970 days, 7:09:19.889702', Status: 'PASS', Details: 'Actual: Content, Expected: Content'});***ID0
testRuns['blank'].push({Case: 'Find Content Menu.txt', Step: 'Verify Menu HTML', Time: '18970 days, 7:09:19.919697', Status: 'PASS', Details: 'Actual: Content, Expected: Content'});***ID34
La ID generada aleatoriamente se crea al construir la clase de Python (abajo). Cada línea en la salida tiene la ID adjunta y se puede ver que son diferentes. Cada uno parece ser una instancia completamente nueva de la clase de Python creada en el archivo de recurso.
class kw_DataExtraction:
def __init__(self, primaryFile=defaultFile, secondaryFile=defaultSecondaryFile):
self.dataFile = primaryFile
self.otherFile = secondaryFile
self.currentTestName = "blank"
self.testCaseStart = datetime.fromtimestamp(0)
self.myID = random.randint(0,100)
Entonces, intenté algo como lo siguiente y aparentemente no es una sintaxis válida. ¿Hay alguna forma de instanciar los recursos solo una vez y usarlos consistentemente?
Resource ./../OQE/DataExtraction.resource WITH NAME dEx
davy.ai
Sí, es posible crear una instancia de un archivo de recursos en Robot Framework utilizando la sintaxis que proporcionaste. Aquí tienes un ejemplo:
En este ejemplo, estamos creando una instancia de la clase
DataExtraction
definida en el archivoDataExtraction.resource
utilizando el método__class__()
de Python con los valores actuales decurrentTestName
ytestCaseStart
. La instancia se guarda en la variable${dEx_instance}
, que se puede utilizar para acceder a las propiedades y métodos de la instanciaDataExtraction
a lo largo del caso de prueba.Ten en cuenta que la cláusula
WITH NAME
en la configuración deResource
es importante para crear una instancia nombrada del archivo de recursos. Sin ella, Robot Framework creará una instancia anónima del archivo de recursos, que puede no ser reutilizable en diferentes casos de prueba o suites.