Parler de l'utilisation de Python pour les tests automatisés

Qu'est-ce que Python?

Insérez la description de l'image ici

  • Python est un langage de programmation interprété, orienté objet et de haut niveau avec des types de données dynamiques.
  • Python a été inventé par Guido van Rossum à la fin de 1989, et la première version publique a été publiée en 1991.
  • Comme le langage Perl, le code source Python suit également l'accord GPL (GNU General Public License).
  • Il est officiellement annoncé que le 1er janvier 2020, la mise à jour de Python 2 sera arrêtée.
  • Python 2.7 a été déterminé comme étant la dernière version de Python 2.x.

Comparaison des programmes Hello World écrits dans différentes langues

  • Version C ++:
#include<iostream>
using namespace std;
int main(){
    
    
	cout << "Hello World!" << endl;
}
  • Version Java:
package test;
    
public class HelloWord{
    
    
	public static void main(String[] args){
    
    
		System.out.println("Hello World!");
	}
}
  • Version Python:
print("Hello World!")

On peut voir que Python a le moins de code, et le but de Python est la simplicité

Comment utiliser Python'slacking off '

  • A l'heure actuelle, de nombreux logiciels bureautiques sur le marché ont de nombreuses fonctions, mais ils sont plus ou moins critiqués comme "inflexibles"

  • De nos jours, de nombreux Pythons sur le marché parlent à nouveau du concept de bureau automatisé, car la machine est la meilleure pour la répétition. Cependant, dans la vie, beaucoup de nos tâches sont répétées. Pourquoi ne pas laisser le soin à la machine?

  • La raison pour laquelle Python peut effectuer la majeure partie du travail quotidien est due à la syntaxe simplifiée de Python d'une part, et aux riches bibliothèques tierces en Python. Ces bibliothèques sont très puissantes et peuvent même vous aider automatiquement à compléter un PS simple travaux.

  • Aujourd'hui, j'introduis principalement les robots d'exploration et l'ETL de données en Python

Qu'est-ce qu'un robot d'exploration?

Insérez la description de l'image ici

  • La technologie des robots d'exploration n'est pas apparue récemment, mais est devenue populaire récemment.
  • Reptile, ne pas entendre ce nom est inconnu. En fait, tout le monde est entré en contact avec lui. C'est Baidu que nous entrons en contact dans notre vie quotidienne. C'est en fait un énorme reptile.
  • Crawler, tout comme la signification de son nom, nous pouvons imaginer tout Internet comme une énorme toile d'araignée, sur cette toile d'araignée est couverte de nombreux bugs (c'est-à-dire les ressources de données dont nous avons besoin), le robot est juste un sur ce site Une araignée rampante, grâce à la programmation, nous pouvons la laisser trouver les données que nous voulons sur ce site Web, puis les collecter pour nous.

Nous avons encore besoin d'un peu de connaissances frontales lorsque nous entrons officiellement dans le monde des robots d'exploration

Que se passe-t-il lorsque le navigateur navigue sur un site Web?

  1. Initier une requête Initier une requête
    au site cible via la bibliothèque HTTP, c'est-à-dire envoyer une requête, qui peut contenir des en-têtes supplémentaires et d'autres informations, et attendre que le serveur réponde. Il existe de nombreux types de requêtes (GET, POST, DELETE, UPDATE, PUT ...) Les plus couramment utilisées Ou les deux premiers
  2. Obtenir le contenu de la réponse
    Si le serveur peut répondre normalement, il recevra une réponse. Le contenu de cette réponse est le contenu de la page à obtenir. Le type peut être HTML, Json, des données binaires (telles que des données d'image).
  3. Analyser et afficher le contenu. Une fois que le
    serveur frontal reçoit la réponse renvoyée par le serveur, il analyse le corps renvoyé via le code js, puis charge les données analysées dans la page pour les afficher conformément aux règles définies.

Qu'est-ce que Request?

1. Les méthodes de requête
incluent principalement GET et POST, en plus de HEAD, PUT, DELETE, etc.
Insérez la description de l'image ici

2. Demander un URL
URL Uniform Resource Locator tout au long du processus, tel qu'un document de page Web, une image, une vidéo, etc. peut être uniquement déterminé par l'URL.
Insérez la description de l'image ici

3. L' en
-tête de la demande contient les informations d'en-tête de la demande, telles que l'agent utilisateur, l'hôte, les cookies et d'autres informations.
Insérez la description de l'image ici

4. Corps de la demande Les
données supplémentaires contenues dans la demande sont les données transportées lorsque le formulaire est soumis, telles que les données du formulaire lorsque le formulaire est soumis.
Insérez la description de l'image ici

Que contient la réponse?

1. État de la réponse
Il existe plusieurs états de réponse, tels que 200 pour succès, 301 saut, 404 page non trouvée et erreur de serveur 502.
2. En- têtes de réponse
tels que le type de contenu, la longueur du contenu, les informations sur le serveur, la configuration des cookies, etc.
Insérez la description de l'image ici

3. La partie principale du corps
de la réponse contient le contenu de la ressource demandée, comme le HTML de la page Web, les données binaires d'image, etc.
Insérez la description de l'image ici

Démarrer un robot d'exploration simple

Étape 1 Simuler la requête HTTP

  • En fait, l'essence du mécanisme de travail des robots d'exploration est de simuler artificiellement le processus des requêtes HTTP via du code.
  • Cette exigence peut être facilement accomplie en Python. Python3 a (requêtes, urllib3 ...) à réaliser, mais il est recommandé d'utiliser le premier car il est hautement encapsulé et plus pratique à utiliser.
# 导入requests 库
import requests

# 调用requests的get方法,对 www.baidu.com 发起一个 GET 请求
response = requests.get("http://www.baidu.com")

# 输出响应体信息
print("响应码:",response.status_code)
print("响应体:",response.text)

Étape 2 ajouter un en-tête de demande

  • Parce que de nombreux sites Web ont maintenant un traitement anti-crawling, parce que trop de programmes d'exploration entraîneront une pression supplémentaire sur les serveurs d'autres personnes, nous devons donc faire semblant d'être un navigateur pour accéder, le principe est de construire User-Agent
# 导入requests 库
import requests

# 设置headers
my_headers={
    
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}

# 调用requests的get方法,对 www.baidu.com 发起一个 GET 请求
response = requests.get("http://www.baidu.com",headers=my_headers)

# 输出响应体信息
print("响应码:",response.status_code)
print("响应体:",response.text)

Après avoir exécuté ce code, vous constaterez que le contenu du corps de réponse renvoyé cette fois est évidemment plus que le précédent. Vous devriez être la dernière fois que le serveur de Baidu vous a identifié comme étant une visite de robot, vous avez donc bloqué beaucoup de contenu à vous renvoyer Corps de réponse

traitement de l'information

  • Le format des données renvoyé par le serveur est toujours si insatisfaisant, nous devons normaliser les données par nous-mêmes pour extraire les données que nous voulons

Traitement des données JSON

  • Souvent, les données que nous obtenons côté serveur sont renvoyées au format JSON. Il est très pratique de traiter JSON en Python. Il n'a pas besoin d'être analysé dans des entités spécifiques comme JAVA. Python est un langage typé dynamiquement et il est très pratique d'analyser JSON. , Il peut analyser la chaîne JSON dans un dictionnaire en Python (dict)
# 导入处理JSON的库
import json

test_json_str = """
{
	"people": [{
		"school": "ttt",
		"name": "zs",
		"age": 15
	}, {
		"school": "du",
		"name": "ls",
		"age": 17
	}, {
		"school": "rw",
		"name": "ww",
		"age": 18
	}],
	"status": "OK"
}
"""

json_ = json.loads(test_json_str)

print("状态:",json_["status"])
print("人员: ",json_["people"])
print("第一个人的学校名:",json_["people"][0]["school"])

Traitement de données structuré

  • Pour les données structurées, python dispose également d'une bibliothèque très puissante qui peut les gérer, appelée pandas
import pandas as pd

data_json = {
    
    
"name":["张三","李四","王五"],
"age": [18,19,17],
"math":[120,112,99],
"english":[95,89,120],
"chinese":[110,102,113]
}

sc_df = pd.DataFrame(data_json)
# 选取英语没有及格的学生
print(sc_df[sc_df["english"] < 90])

Selenium, un puissant outil de test d'automatisation Web

Qu'est-ce que le sélénium?

Selenium est un outil de test d'applications Web. Les tests Selenium s'exécutent directement dans le navigateur, tout comme un utilisateur réel opère. Les navigateurs pris en charge incluent IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc. Les principales fonctions de cet outil incluent: tester la compatibilité avec les navigateurs-tester votre application pour voir si elle peut bien fonctionner sur différents navigateurs et systèmes d'exploitation. Tester les fonctions du système - créer des tests de régression pour vérifier les fonctions du logiciel et les exigences des utilisateurs.

Utilisez la bibliothèque Selenium de python pour faire fonctionner le navigateur

step1 Ouvrez une page Web

# 导入web驱动的库
from selenium import webdriver
# 创建一个Chrome浏览器的驱动对象
browser = webdriver.Chrome()
# 在浏览器中输入百度的地址,访问百度的网页
browser.get("http://www.baidu.com")

step2 Réaliser un terme de recherche automatique

# 导入web驱动的库
from selenium import webdriver
# 创建一个Chrome浏览器的驱动对象
browser = webdriver.Chrome()
# 在浏览器中输入百度的地址,访问百度的网页
browser.get("http://www.baidu.com")
# 定位到输入搜索关键字的标签,并填入想要搜索的词条
browser.find_element_by_xpath('//*[@id="kw"]').send_keys("爬虫")
# 点击搜索按钮
browser.find_element_by_xpath('//*[@id="su"]').click()

step3 afficher le code source de la page Web

# 导入web驱动的库
from selenium import webdriver
# 创建一个Chrome浏览器的驱动对象
browser = webdriver.Chrome()
# 在浏览器中输入百度的地址,访问百度的网页
browser.get("http://www.baidu.com")
# 打印网页源码
print(browser.page_source)
```python
# 导入web驱动的库
from selenium import webdriver
# 创建一个Chrome浏览器的驱动对象
browser = webdriver.Chrome()
# 在浏览器中输入百度的地址,访问百度的网页
browser.get("http://www.baidu.com")
# 打印网页源码
print(browser.page_source)

Je suppose que tu aimes

Origine blog.csdn.net/qq_42359956/article/details/109265547
conseillé
Classement