Hablando de 7 años de experiencia en pruebas de Alibaba: uso de pruebas automatizadas de UI para lograr el posicionamiento de elementos

Con el desarrollo de la industria de TI, los productos se han vuelto cada vez más complejos y los negocios y procesos del lado web se han vuelto más engorrosos. Actualmente, las pruebas de UI son solo para una sola página, lo que requiere una gran cantidad de operaciones. Para satisfacer las necesidades de funciones y procesos de varias páginas y ahorrar horas de trabajo, se diseñó este programa de prueba de automatización de la interfaz de usuario. Su objetivo es proporcionar interfaces para integrarse en el marco de pruebas automatizadas de Snail para facilitar el diseño de casos de uso.

En la actualidad, en la aplicación real de pruebas automatizadas, las pruebas automatizadas de interfaz se utilizan ampliamente, pero las pruebas automatizadas de UI no serán reemplazadas. Veamos cómo se comparan los dos:

  • Las pruebas automatizadas de interfaz omiten la interfaz front-end y prueban directamente el servidor. Tienen mayor eficiencia de ejecución y cobertura, menores costos de mantenimiento y una mayor relación inversión-producto en general, por lo que se utilizan más ampliamente en proyectos.
  • Las pruebas automatizadas de UI simulan el comportamiento operativo del usuario en la página de inicio para realizar pruebas. Aunque se ve fácilmente afectado por otros factores (como congelaciones de la computadora, congelaciones del navegador, velocidad de la red, etc.) durante el proceso de ejecución, la ejecución del caso de uso falla. ., y el costo de mantenimiento posterior es mayor, pero las pruebas automatizadas de la interfaz de usuario se acercan más a la situación real cuando los usuarios la usan y también pueden encontrar algunos errores que la automatización de la interfaz no puede encontrar.

Por lo tanto, en las pruebas automatizadas de proyectos reales, generalmente se adopta una solución que se centra en la automatización de la interfaz y cubre procesos comerciales clave a través de la automatización de la interfaz de usuario una vez que se estabiliza el sistema. La base de la automatización de la interfaz de usuario es el posicionamiento de elementos. Solo después de completar el posicionamiento del elemento, el elemento posicionado se puede manipular, simulando pruebas manuales para realizar una serie de interacciones de la página, como hacer clic, ingresar, etc.

1. Métodos de posicionamiento de elementos de uso común.

Para las pruebas de automatización de la interfaz de usuario en el lado web, el posicionamiento de elementos generalmente utiliza los siguientes 8 métodos de posicionamiento proporcionados por selenium:

  1. ID: el posicionamiento basado en ID es el método de posicionamiento más utilizado, porque la ID es única y el posicionamiento es preciso y rápido.
  2. nombre: el posicionamiento a través del atributo [nombre] del elemento puede no ser único.
  3. class_name: localizar por nombre de atributo de clase.
  4. tag_name: posicionamiento por nombre de etiqueta, generalmente no recomendado.
  5. link_text: se utiliza especialmente para ubicar elementos de hipervínculo (es decir, una etiqueta), que deben coincidir completamente con el contenido del hipervínculo.
  6. parcial_link_text: también se utiliza para localizar elementos de hipervínculo, pero puede coincidir de forma aproximada con el contenido del hipervínculo.
  7. xpath: el posicionamiento basado en la ruta del elemento, dividido en ruta absoluta y ruta relativa, puede ubicar todos los elementos de destino.
  8. css_selector: el método de posicionamiento de elementos recomendado oficialmente por selenium, que es más eficiente que xpath, pero requiere dominar algunos conceptos básicos de CSS.

En proyectos reales, se recomienda más utilizar métodos de posicionamiento xpath y css, que pueden ubicar todos los elementos en la página y tienen menores restricciones de uso. Si no sabe acerca de CSS, se recomienda usar xpath para comenzar más rápido; si tiene ciertos conocimientos básicos de CSS, se recomienda usar CSS para el posicionamiento de elementos.

A continuación, tomando la página de inicio de Baidu como ejemplo, se presentarán en detalle varios métodos de posicionamiento en el uso real.

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

2. Aplicación práctica del posicionamiento de elementos.

Tomando el cuadro de búsqueda en la página de inicio de Baidu como ejemplo, presentaremos los cuatro métodos de posicionamiento de elementos: id, nombre, clase y tag_name.

1.posicionamiento de identificación

Coloque el cuadro de entrada en la página de inicio de Baidu a través del atributo id.

# 通过input标签的id属性进行定位 find_element_by_id('su')

2.posicionamiento del nombre

Coloque el cuadro de entrada en la página de inicio de Baidu a través del atributo de nombre.

# 通过input标签的name属性进行定位 find_element_by_name('wd')

3.posicionamiento de nombre de clase

Coloque el cuadro de entrada en la página de inicio de Baidu a través del atributo de clase.

# 通过input标签的class属性进行定位 ind_element_by_class_name('s_ipt')

4.posicionamiento del nombre de la etiqueta

El posicionamiento por nombre de etiqueta rara vez se utiliza porque la misma etiqueta suele repetirse en la página.

# 通过input标签名进行定位 find_element_by_tag_name('input')

A continuación, tome los "Comentarios" en la parte inferior de la página como ejemplo para presentar los dos métodos de posicionamiento de linkText y parcialLinkText.

5.linkPosicionamiento del texto

El posicionamiento se realiza a través de la información de texto de la etiqueta a, que solo se utiliza para ubicar el hipervínculo de una etiqueta.

# 通过a标签的文本信息进行定位 find_element_by_link_text('意见反馈')

6.posicionamiento parcial de LinkText

El posicionamiento se realiza mediante una coincidencia difusa de parte de la información de texto de la etiqueta a.

# 通过对a标签的部分文本信息模糊匹配进行定位 find_element_by_partial_link_text('反馈')

7.posicionamiento xpath

El método de posicionamiento xpath localiza elementos a través de los atributos y rutas de los elementos de la página y, en teoría, puede posicionar selectivamente todos los elementos en la página. A continuación se presentan varios métodos de posicionamiento de xpath.

Primero, introduzcamos la expresión del nodo de ruta de xpath, como se muestra en la figura:

( 1) posicionamiento de ruta absoluta xpath

Tomemos como ejemplo el cuadro de búsqueda de la página de inicio de Baidu.

find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input')

En circunstancias normales, no elige utilizar rutas absolutas xpath para el posicionamiento de elementos. Hay dos razones: en primer lugar, la ruta absoluta es engorrosa y larga, lo que afecta la velocidad de ejecución; en segundo lugar, hay muchos niveles involucrados y cualquier cambio en cualquier nivel hará que el posicionamiento falle y sea necesario reiniciarlo. Realizar modificaciones no favorece el mantenimiento posterior.

(2) Posicionamiento combinado de ruta relativa de XPath y atributo de elemento

Si un determinado atributo del elemento objetivo es único, el elemento objetivo se puede posicionar directamente; de ​​lo contrario, es necesario encontrar un elemento único cerca del elemento objetivo y luego ubicarlo a través de la relación jerárquica entre los dos.

A continuación, todavía tomamos los elementos de la página de inicio de Baidu como ejemplo para ilustrar el método de posicionamiento xpath.

# 通过元素属性定位百度首页的搜索框
find_element_by_xpath("//input[@id='su']")
find_element_by_xpath("//input[@name='wd']")
find_element_by_xpath("//input[@class='s_ipt']")
find_element_by_xpath("//input[@autocomplete='off']")

# 通过文本信息定位(和text_link方法不同,不局限于a标签)
find_element_by_xpath("//a[text()='意见反馈']")
find_element_by_xpath("//span[text()='设置']")

# 通过父级定位子级元素,举例百度首页搜索按钮
find_element_by_xpath("//span[@class='bg s_btn_wr']/input")

# 通过子级定位父级元素,举例百度首页百度热榜的换一换
find_element_by_xpath("//span[text()='换一换']/..")

# 通过contains方法模糊匹配定位,举例百度首页搜索按钮
find_element_by_xpath("//input[contains(@class,'s_btn')]")
find_element_by_xpath("//a[contains(text(),'反馈')]")

(3) El navegador copia xpath

Además de los dos métodos anteriores, existe otro método simple, que consiste en buscar el elemento de destino en la herramienta de desarrollo F12 del navegador y hacer clic derecho para copiarlo, como se muestra a continuación.

Sin embargo, el xpath copiado puede ser largo. Se recomienda que usted mismo escriba el xpath del elemento de destino según sus necesidades.

8.posicionamiento css_selector

(1) Introducción al posicionamiento CSS

Posicionamiento css_selector (en lo sucesivo denominado posicionamiento css), su método de posicionamiento se realiza mediante selectores. En CSS, un selector es un patrón que se utiliza para seleccionar objetos a los que se les debe aplicar estilo. El posicionamiento de elementos a través de CSS puede, en teoría, posicionar todos los elementos en la página.

En comparación con xpath, la sintaxis de css es más concisa y la velocidad de posicionamiento es más rápida, sin embargo, la sintaxis de css es más complicada que xpath y es relativamente difícil de recordar.

(2) ejemplo de posicionamiento CSS

A continuación, todavía tomamos el cuadro de búsqueda en la página de inicio de Baidu como ejemplo para ilustrar el método de posicionamiento CSS.

# 通过id定位,id名前加# 
find_element_by_css_selector("#kw")

# 通过class定位,class名前加. 
find_element_by_css_selector(".s_ipt")

# 通过标签定位
find_element_by_css_selector("input")

# 通过其它属性定位 
find_element_by_css_selector("[name='wd']")

# 标签和属性组合定位 
find_element_by_css_selector("input#kw")
find_element_by_css_selector("input.s_ipt")
find_element_by_css_selector("input[name='wd']")
find_element_by_css_selector("[name='wd'][autocomplete='off']")

# 通过父级定位子级元素 
find_element_by_css_selector("from#form>span[@class='bg s_ipt_wr']>input")

3. Resumen

Lo anterior es una breve introducción a los diversos métodos de posicionamiento de elementos de Selenium. En el uso real del proyecto, al elegir el método de posicionamiento, se recomienda elegir en el orden "id > nombre > xpath/css > otro".

Aunque las pruebas automatizadas de UI no se utilizan tan ampliamente como las pruebas automatizadas de interfaces, también son una parte inaccesible de las pruebas automatizadas. Espero que este artículo pueda ser de alguna ayuda para los amigos que están aprendiendo sobre la automatización de UI.

Finalmente, me gustaría agradecer a todos los que leyeron atentamente mi artículo. Mirando el aumento de fans y atención, siempre hay algo de cortesía. Aunque no es algo muy valioso, si puedes usarlo, ¡puedes llevarlo directamente!

Documento de entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista provienen de los últimos materiales de entrevista de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas. Después de terminar esto set Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.
 

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_58026506/article/details/132907602
Recomendado
Clasificación