This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - ANTRAX

Pages: 1 2 [3] 4 5 ... 254
41
Dudas y pedidos generales / Re: Taller js
« on: March 09, 2022, 05:17:15 pm »
Hola!!

Tenemos este repo lleno de cursos y hay varios de Javascript desde cero:

You are not allowed to view links. Register or Login

Saludos,
ANTRAX

42
Presentaciones y cumpleaños / Re: Me presento
« on: March 08, 2022, 05:32:50 pm »
Hola Sofi! bienvenida!
Paso a responder las preguntas que dejaste.

¿Qué cursos me recomiendan para empezar en este camino(no importa si son pagos o gratuitos, pero si son pagos que consideren que vale la pena)?

Tenemos un gran repositorio de cursos gratuitos: You are not allowed to view links. Register or Login

¿Qué me dirían que es lo mas importante que tengo que aprender para encaminarme?

Lo más importante es no frustrarse.. es algo que te va a pasar seguido, pero acá tenes el respaldo de toda la comunidad para ayudarte!

El inglés es fundamental!

Saludos!
ANTRAX

43
Hola!

Ya encontré la solución:

Code: (text) You are not allowed to view links. Register or Login
"battery_charge_state": {"type": ["number", "null"]}
La dejo acá por si a alguien más le sirve!

Saludos,
ANTRAX

44
Autoc0de / Automatizaciones con Autoc0de desde cero
« on: March 07, 2022, 11:35:39 pm »

En esta ocasión quiero presentarles a este gran Framework de automatización llamado Autoc0de, creado por You are not allowed to view links. Register or Login , miembro activo de la comunidad de Underc0de.

Autoc0de se diferencia del resto de los frameworks por sus siguientes características:

– Muy fácil de implementar
– Facilidad para aprender a usarlo
– Se actualiza constantemente
– Gran respaldo de la comunidad
– Cada vez más empresas estan empezando a implementarlo
– Facil de integrar a GitHub y Jenkins
– Hecho en Java
– No requiere conocimientos extensos de programación
– Desde el primer día se puede comenzar a automatizar
– Sirve para automatizar Web, APIs y Mobile

Autoc0de es Framework que utiliza BDD (Cucumber), puede integrarse a Jenkins y Github, funciona con Selenium para automatizar web, Appium para aplicaciones mobile, y también sirve para automatizar API REST. Por otro lado, emite reportes en PDF y en HTML que son muy intuitivos

En esta guía vamos a ver como montarlo desde cero y como correr el ejemplo que trae.

Requerimientos:

– Java
– Maven
– IntelliJ o cualquier otro IDE que les guste
– Cucumber (Plugin del IDE)

 
Instalación de Java

Lo primero que haremos será instalar Java de su página oficial: You are not allowed to view links. Register or Login


Una vez descargado, lo instalamos.


Configuración de Maven

Para descargar Maven, debemos hacerlo de su página oficial: You are not allowed to view links. Register or Login y descargar el archivo binario


Una vez descargado, lo debemos descomprimir


Ahora vamos a las variables de entorno y debemos agregar la ruta de Maven y de Java


A continuación dejo los pasos a seguir:


Hacemos lo mismo con Java


Para corroborar si quedó todo bien, abriremos una consola y colocaremos lo siguiente:

java -version y mvn -v


Si nos reconoce ambos comandos, es porque lo hemos hecho bien, de lo contrario, dirá que no reconoce el comando y esto es porque esta mal colocada la ruta en la variable de entorno.

 
Instalación de IntelliJ

En mi caso voy a utilizar IntelliJ como IDE, porque es el que más me gusta, pero pueden usar cualquier otro que prefieran.

Para descargarlo, vamos a su sitio oficial: You are not allowed to view links. Register or Login y descargamos la versión Community

Lo instalamos como a cualquier otro software, lo único que tenemos que tener en cuenta, es que debemos marcar el siguiente checkbox en este paso:


Esto es para evitar tener que colocarlo después en las variables de entorno.

 
Levantar el proyecto de Autoc0de

Para descargar autoc0de, deberemos ir a su repo en GitHub: You are not allowed to view links. Register or Login


Una vez descargado, lo descomprimimos y lo abrimos con IntelliJ. Para ello, clickeamos en OPEN


Y buscamos la carpeta descomprimida. (Importante: Abrir el directorio que tiene el ícono negro en la parte de abajo)


A continuación, nos saldrá una alerta, indicandonos si confiamos en el proyecto (lo que no es algo de cero y estamos abriendo un proyecto ya creado)


Seguido a esto, comenzará a cargar el framework. La primera vez demorará un rato en cargar todo. Nos daremos cuenta, porque dejará de cargar cosas en la esquina inferior derecha.


También, esta primera vez nos pedirá instalar Cucumber, para poder interpretar el Gherkin de los test cases. Simplemente damos click en Configure Plugins, y le damos a instalar.


Una vez que finalice de cargar todo, podremos ver toda la estructura del framework.


Por último, debemos seleccionar la versión de JDK que usaremos. Para ello, debemos ir a File >> Project Structure y seleccionamos el JDK que tengamos instalado.


Con esto ya tendremos nuestro ambiente listo para empezar con la automatización!

Arquitectura de Autoc0de

Su arquitectura es la siguiente:


Parece un poco complejo de entender, pero al principio de esta guía, mencioné que es un framework muy sencillo, y esto se debe a que solo tiene 3 capas de suma importancia y que son con las que estaremos interactuando permanentemente:

Feature (En donde se escriben los test cases)
Steps (Traducción de lenguaje coloquial a Java)
PageObject (Mapeos de elementos y métodos)

El resto de las capas, es como para configurar otros parámetros más avanzados, que por ahora no es necesario tocar.

Capa 1: Features

El Feature es en donde tendremos el escenario escrito en lenguaje coloquial (Cucumber). En otras palabras, podemos decir que cada feature, tendrá todos los test cases que se le pueden ejecutar a una funcionalidad.

Cucumber es una herramienta utilizada para implementar metodologías como BDD (Behaviour Driven Development) las cuales permiten ejecutar descripciones funcionales escritas en texto plano como pruebas de software automatizadas.

Estas descripciones funcionales, se escriben en un lenguaje específico y legible llamado “Gherkin”, el cual sirve como documentación al desarrollo y para las pruebas automatizadas.

Cucumber tiene palabras reservadas como GIVEN, WHEN, THEN, AND, entre otros que no son tan usuales, como por ejemplo BUT

En el siguiente ejemplo, vamos a ver como loguear a un usuario en el foro de Underc0de. Haremos una prueba con un usuario real y otro con uno que no existe, para que vean como se ven en el reporte


Quizas no se entienda nada a simple vista, pero voy a explicar linea por linea para que se entienda mejor.

Linea 1: «Feature» Acá tenemos el nombre del feature, es decir, que es lo que se va a probar. En este caso, el login del foro de Underc0de
Linea 3: «@Tags» Con autoc0de podemos crearles tags a los distintos test cases, y luego solo correr a todos los test cases que tengan un tag en específico. Por ejemplo, podemos escribir 100 test cases automatizados, pero solo 10 tienen el tag de «@Smoke», si a la hora de correr los test cases solo coloco el tag de «@Smoke», se correrán unicamente esos 10 casos de prueba.
Linea 4: «Scenario ó Scenario Outline» Si el escenario es uno simple, solo colocamos scenario, pero si es un scenario que se ejecutará más de una vez utilizando una tabla de examples, entonces se coloca scenario outline. (En la linea 11 explicaré la diferencia un poco mejor)
Lineas del 5 al 10: «Pasos» Como dije anteriormente, cucumber tiene palabras reservadas:

Given: Dado
When: Cuando
AND: Y
Then: Entonces


Acá es cuando especificamos el paso a paso de lo que debe hacer la automatización.
El Given indica desde donde parte el usuario a navegar, el When y And son los pasos que va realizando y el Then es la verificación.

Linea 11 al 14: «Examples» La tabla de examples se utiliza cuando queremos ejecutar un mismo test cases, pero con distintos sets de datos. En este caso, este test case se ejecutará 2 veces. Primero se logueará al foro utilizando la cuenta autoc0de con la pass Underc0de y la segunda vez usará el usuario autoc0deFail con la password underc0defail

Hay algo que me han preguntado con mucha frecuencia, y es si a estos steps hay que escribirlos si o si en inglés. La respuesta es NO. Se pueden escribir en cualquier idioma.

Para entender todo esto mejor, vamos a ver el siguiente ejemplo de como pasar un test case normal (manual) a Gherkin


Code: (text) You are not allowed to view links. Register or Login
Feature: Loguearse con un mail y contraseña válidos

@Logueo
Scenario: Loguearse en el sistema con credenciales válidas
Given el usuario esta en el login del sistema
When el usuario ingresa un mail y contraseña válidos
And el usuario clickea en el botón Entrar
Then El sistema redirecciona al dashboard principal

Con esto ya tendríamos armado nuestro feature.

Capa 2: Steps

La segunda capa del framework son los STEPS o pasos. El archivo de steps contiene cada línea de nuestro feature convertida a lenguaje de programación y acá es en donde le decimos que acciones debe ejecutar nuestro script.

Para entenderlo un poco mejor, vamos a examinar algunos steps


En este código resalté dos porciones del código para explicarlas mejor.
La linea 24 y 39 empiezan con un You are not allowed to view links. Register or Login que son los AND del feature. Siempre que tengamos un @Given, @When, You are not allowed to view links. Register or Login o @Then, es porque estamos llamando al paso de la capa 1 (del feature)

En las líneas 25 y 26, y en las 40 y 41, tenemos código en Java, que son clases, en donde le decimos que deben hacer en ese paso.

En la 25 y 26 hacen un click a un botón, mientras que en la 40 y 41, completan con usuario y contraseña unos input para loguearse.

Cada una de estas clases, apunta a un método de la capa 3 del framework (Page Object)

Capa 3: Page Object

El Page Object esta compuesto por 2 partes, el mapeo y los métodos.

Mapeo = Declarar en variables como se llama cada elemento de una web/aplicación
Métodos = Es en donde indicamos que acción debe hacerle a cada elemento mapeado (si es un click, completar con texto, etc)

Mapeo de elementos

Cada elemento de una web o aplicación puede ser mapeado por distintos tipos de selectores. Entre ellos:

– Class
– ID
– Name
– Xpath
– Algún otro ID personalizado.

En la siguiente imagen, vamos a ver el mapeo que viene como ejemplo en Autoc0de.


En este caso, esta usando XPATH para el mapeo.

Para poder mapear un elemento, debemos ir a la web que estamos automatizando y dar click derecho sobre algún elemento y luego en inspeccionar. En este caso, vamos a inspeccionar el botón «Buscar con Google»


Una vez hecho esto, se nos abrirá el inspector del browser y podremos analizar ese elemento en particular.


En este caso, vemos que el botón tiene una clase llamada gNO89b y un name llamado btnK. Podríamos mapear a ese botón con cualquiera de esos 2 elementos.

Por otro lado, si damos click derecho en esa línea resaltada, podremos copiar el XPath.


En este caso el XPath es el siguiente:

/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[1]

El XPath es la ruta que indica en donde se encuentra este elemento en el DOM de la página. Lo malo de usar este selector, es que si agregran un DIV o si mueven de lugar el botón, esta ruta del XPath cambiará y tendremos que modificar nuestro código para reemplazarlo por el nuevo.

Por lo general los IDs suelen ser únicos, por lo que suele ser el elemento ideal para mapear.

En caso de mapear por una Clase, esta puede repetirse. Las clases son las que suelen usarse para darle un estilo a un elemento, por lo que si hay 2 botones iguales, puede que tengan la misma clase. Y si queremos clickear un botón que aparezca en la parte de abajo del sitio, deberemos recorrer todos los botones hasta llegar al que queremos, de lo contrario, clickeará el primer elemento que encuentre con esa clase.

Una vez obtenido el selector, lo declaramos en una variable de esta forma:

private final String LOGIN_BUTTON_XPATH = "//*[You are not allowed to view links. Register or Login=\"top\"]/section[1]/div/div/div/div/h2";

En el nombre de la variable pueden poner cualquier cosa, pero Autoc0de sugiere usar la siguiente estructura:

NombreDelElemento_TipoDeElemento_Selector

En este caso, estamos mapeando podemos decir que estamos mapeando un botón que se llama «Login» y lo estamos haciendo através de XPath

En caso de mapear por ID sería:

private final String LOGIN_BUTTON_ID = "btnK";

 
Métodos

En esta parte de la capa 3, le indicamos que debe hacerle a cada elemento que mapeamos anteriormente. Es decir, si mapeamos un botón, se supone que le vamos a hacer un click. En la siguiente porción de código del ejemplo de Autoc0de, podemos ver como hacer el click a un botón mapeado.


Ejecutando el ejemplo de Autoc0de

Para poder ejecutar el ejemplo de Autoc0de, debemos abrir la terminal del intelliJ y escribir: mvn clean test


Seguido a esto, se abrirá el browser que tengamos configurado (Chrome por defecto) y hará todos los pasos del test. Al finalizar, dentro de la carpeta Target >> Reports, podremos ver el reporte


Reporte en HTML:


Y también podemos ver el paso que fallo, con su respectivo screenshot:


En este caso no me creó el reporte en PDF por mi versión de Java. Para que lo genere, debemos tener una versión superior a la 8. Pero se ve algo así:


Esto es todo por ahora!

Espero que les guste y sirva este excelente framework de Automation!

ANTRAX

45
Dudas y pedidos generales / Re: Problema al validar schema en Postman
« on: March 07, 2022, 02:11:57 pm »
Después de investigar un buen rato, encontré la respuesta.

Cuando se validan Jsons con postman, los 6 tipos de datos permitidos son: string, number, array, object, null, boolean. Por lo tanto, si el dato es de tipo float, corresponde a "number"

Espero que les sirva.

Saludos,
ANTRAX

46
Hola a todos!

En esta ocasión vengo a preguntarles como puedo hacer para validar con postman un scheme que tenga un elemento cuyo data type pueda venir null o con algún valor numérico?

Ejemplo:

Code: (javascript) You are not allowed to view links. Register or Login
const schema = {
  "type": "object",
  "properties": {
    "values": {"type": "array",
      "items": [
        {
          "type": "object",
          "properties": {
            "battery_charge_state": {"type": "number"}
          },
          "required": [
            "battery_charge_state"
          ]
        }
      ]
    },
   
  },
}

pm.test("Schema validation", () => {
    pm.response.to.have.jsonSchema(schema);
});

En donde ese  "battery_charge_state" algunas veces puede venir como un número y otras veces como null.

Alguna idea?

Saludos,
ANTRAX

47
Hola a todos! Estoy intentando validar un schema con postman. Utilicé la siguiente web para convertir el JSON en Schema: You are not allowed to view links. Register or Login
Y el resultado fue este:

Code: (javascript) You are not allowed to view links. Register or Login
const schema = {
  "type": "object",
  "properties": {
    "system_id": {"type": "string"},
    "start": {"type": "string"},
    "end": {"type": "string"},
    "period": {"type": "string" },
    "unit": {"type": "string"},
    "values": {"type": "array",
      "items": [
        {
          "type": "object",
          "properties": {
            "timestamp": {"type": "string"},
            "battery_charge": {"type": "float" },
            "battery_discharge": {"type": "number"},
            "grid_export": {"type": "number"},
            "grid_import": {"type": "number"},
            "home_consumption": {"type": "number"},
            "solar": {"type": "number"},
            "battery_charge_state": {"type": "number"}
          },
          "required": [
            "timestamp",
            "battery_charge",
            "battery_discharge",
            "grid_export",
            "grid_import",
            "home_consumption",
            "solar",
            "battery_charge_state"
          ]
        }
      ]
    },
    "totals": {
      "type": "object",
      "properties": {
        "battery_charge": {"type": "number"},
        "battery_discharge": {"type": "number"},
        "grid_export": {"type": "number"},
        "grid_import": {"type": "number"},
        "home_consumption": {"type": "number"},
        "solar": {"type": "number"}
      },
      "required": [
        "battery_charge",
        "battery_discharge",
        "grid_export",
        "grid_import",
        "home_consumption",
        "solar"
      ]
    }
  },
  "required": [
    "system_id",
    "start",
    "end",
    "period",
    "unit",
    "values",
    "totals"
  ]
}

pm.test("Schema validation", () => {
    pm.response.to.have.jsonSchema(schema);
});

El problema esta en que coloca varios "Numbers" en alguno de los elementos. Por ejemplo:

"battery_discharge": {"type": "number"},

Y en realidad debería ser un "float". Pero cuando cambio esto, inmediatamente postman me tira el siguiente error:

Code: (text) You are not allowed to view links. Register or Login
Schema validation | Error: schema is invalid: data.properties['values'].items should be object,boolean, data.properties['values'].items[0].properties['battery_charge'].type should be equal to one of the allowed values, data.properties['values'].items[0].properties['battery_charge'].type should be array, data.properties['values'].items[0].properties['battery_charge'].type should match some schema in anyOf, data.properties['values'].items should match some schema in anyOf
Alguna sugerencia?

Saludos,
ANTRAX

48
GNU/Linux / Re: [Non-Linux] Instalación de Hirana-Client en FreeBSD
« on: March 03, 2022, 01:06:08 am »
Excelente aporte broo!! Mil gracias por compartirlo!!

Saludos,
ANTRAX

49
Java / Re: ¿Qué evalúo en las entrevistas técnicas?
« on: February 18, 2022, 12:40:33 pm »
Aportazo Alex!! Esta excelente!!!
Ahora espero uno con las posibles respuestas!! jajaaj

50
Criptomonedas / Calcular ganancias minando ETH
« on: February 09, 2022, 12:21:48 am »
Hola Underc0ders!
Voy a hacer un breve post explicando como calcular rapidamente la ganancia que tendríamos minando ETH.
Lo primero que tenemos que hacer, es ver que potencia de minado tiene nuestra placa (MH/s), para ello, vamos a nuestro amigo Google y escribimos lo siguiente:


En donde "3080 ti" es el modelo de nuestra placa de video.


Como podemos ver, en los resultados dice que mina a 86.78 MH/s (Esto puede variar dependiendo del overclock que le pongamos, puede ser un poco más o un poco menos, pero al menos ya tenemos el aproximado)

Lo siguiente es ir a una pool, como por ejemplo a: You are not allowed to view links. Register or Login

Scrolleamos un poco y nos vamos a topar con la calculadora:


En esta calculadora colocamos la potencia de minado de la placa y podremos ver el aproximado en dolares que ganaríamos con ella


Tenes en cuenta que este valor cambia cada vez que sube o baja el ETH. Pero al menos podemos tener un panorama más certero de las ganancias.

Espero que les sirva!
Saludos,
ANTRAX

51
Off Topic / Re: muchas gracias!
« on: February 08, 2022, 08:07:38 am »
Pense que había respondido antes a penas lo vi!
Muchas gracias por tus comentarios Shadow_Panda!!! Son muy motivantes para seguir creciendo!

PD: Creo que en lugar de un pulpo, debimos elegir a un gato como mascota jajaja

52
Hacking / Re: Artículo Comando G
« on: January 31, 2022, 02:53:57 pm »
Ufff esta buenisimo el aporte! Muchas gracias!

53
Presentaciones y cumpleaños / Re: Hola. ¿De nuevo?
« on: January 28, 2022, 09:13:51 am »
Bienvenido a la comunidad!!!

Este es tu post: You are not allowed to view links. Register or Login

Fue movido a la sección de dudas.
Saludos y nos leemos por el foro!
ANTRAX

54
Batch - Bash / Re: [BASH] BATS - Testing framework para bash
« on: January 26, 2022, 08:25:46 pm »
Esta buenisimo! No lo conocía!
Me sorprende como un Framework de hace 10 años aún funcione!

Gracias por compartirlo!
ANTRAX

55
Criptomonedas / Re: El ponzi nuestro de cada día
« on: January 19, 2022, 01:31:40 am »
Que pasó al final en San Rafael con el tema de Ganancias Deportivas?
Se que el "Villegas" renunció, pero después de eso no volví a ver más nada al respecto

Saludos!

56
Dudas y pedidos generales / Re: OC 3090/2060 fan err?
« on: January 14, 2022, 04:18:56 pm »
Es raro, tenes la ultima version del HiveOS?
yo tengo las mismas placas y me funcionan bien

57
Dudas y pedidos generales / Re: OC 3090/2060 fan err?
« on: January 13, 2022, 10:57:00 am »
Fijate con esto

Code: (bash) You are not allowed to view links. Register or Login
apt install --reinstall -y nvidia-settings
Saludos!

58
Cursos, manuales y libros / Cursos en Torrent
« on: January 13, 2022, 10:50:45 am »
Hola Underc0ders!
Como ya todos saben, tenemos un servidor de torrent con cursos que se va actualizando casi a diario.


Enlaces Magnéticos:
You are not allowed to view links. Register or Login

En caso de no saber como se descargan los cursos, les dejo una guía escrita por You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

También los invito a dejar sus opiniones o recomendaciones de cursos en este hilo. Es decir, si descargaron algún curso y les gustó o no

59
Dudas y pedidos generales / Re: OC 3090/2060 fan err?
« on: January 12, 2022, 01:43:26 pm »
Buenas!! Puede que sea algo relacionado a los drivers. Para actualizarlo, hace lo siguiente:

Te vas al ícono de la consola y pones Hive Shell Start



Después abrís la consola



Y ejecutas lo siguiente:

Code: (bash) You are not allowed to view links. Register or Login
nvidia-driver-update
Una vez instalado, reinicias el rig y listo.. Debería empezar a funcionar de nuevo!
Cualquier cosa, avisa!

60
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Hola!
He leido que ahora estan usando los dispositivos móviles para minar criptomonedas. Quizas sea un malware que usa el movil para minar

Saludos

Otra duda sería: ¿Es más efectivo el restablecimiento mediante los ajustes del dispositivo o mediante el modo Recovery de Android (Prenderlo y presionar los respectivos botones)? Gracias por responder!  :D

Sii! Creo que va a ser la mejor opción.. hacerle un hard reset. Luego comentanos si se solucionó! Para tenerlo en cuenta a futuro.

Saludos!

Pages: 1 2 [3] 4 5 ... 254