Python接口自动化框架模板
Python是一种广泛使用的高级编程语言,它支持多种编程范式,包括面向对象、命令式、函数式和反射式编程。Python的简洁语法和丰富的标准库使得它成为了WEB应用开发、网络编程、数据分析等领域最流行的语言之一。在接口自动化测试中,Python也得到了广泛的应用。本文将介绍如何使用Python编写接口自动化框架模板。
1. 安装依赖库
在使用Python编写接口自动化框架模板之前,我们需要安装一些依赖库,这些库可以帮助我们更加方便地进行接口测试。常用的Python依赖库有requests、unittest、pytest、jsonpath等。下面是安装依赖库的命令:
```
pip install requests
pip install unittest
pip install pytest
pip install jsonpath
```
2. 编写测试用例
编写测试用例是接口自动化测试的核心,我们需要针对每个接口编写符合要求的测试用例。在Python中,我们可以使用unittest框架来组织测试用例,unittest提供了丰富的断言方法和各种钩子函数,可以很好地进行测试用例管理。下面是一个简单的测试用例示例:
```
import unittest
import requests
class TestLogin(unittest.TestCase):
def setUp(self):
self.url = "http://localhost:8080/api/login"
self.headers = {"Content-Type": "application/json"}
def test_login_success(self):
data = {"username": "admin", "password": "123456"}
res = requests.post(self.url, headers=self.headers, json=data)
self.assertEqual(res.status_code, 200)
self.assertEqual(res.json()["code"], 0)
def test_login_failed(self):
data = {"username": "admin", "password": "12345"}
res = requests.post(self.url, headers=self.headers, json=data)
self.assertEqual(res.status_code, 200)
self.assertEqual(res.json()["code"], -1)
def tearDown(self):
pass
```
在这个测试用例中,我们针对登录接口编写了两个测试用例,分别是登录成功和登录失败。在setUp函数中初始化了接口地址和请求头信息,在test_login_success和test_login_failed函数中分别发送了登录请求,并使用断言方法测试接口返回结果的正确性,在tearDown函数中清理测试数据。
3. 编写测试套件
测试套件是组织测试用例的容器,我们可以使用unittest.TestSuite来创建测试套件。在Python中,我们可以使用unittest.defaultTestLoader()来自动查找并加载所有的测试用例,也可以手动添加测试用例到测试套件中。下面是一个简单的测试套件示例:
```
import unittest
from test_login import TestLogin
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestLogin("test_login_success"))
suite.addTest(TestLogin("test_login_failed"))
runner = unittest.TextTestRunner()
runner.run(suite)
```
在这个测试套件中,我们创建了一个测试套件对象suite,并使用suite.addTest()方法将TestLogin的两个测试用例添加到测试套件中。最后使用unittest.TextTestRunner()来执行测试套件并输出测试结果。
4. 编写测试报告
测试失败时,我们需要及时发现问题并定位问题所在,测试报告是帮助我们分析问题的重要工具。为了方便查看测试结果,我们可以使用HTMLTestRunner库来生成HTML格式的测试报告。下面是一个简单的测试报告示例:
```
import unittest
import HTMLTestRunner
from test_login import TestLogin
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestLogin("test_login_success"))
suite.addTest(TestLogin("test_login_failed"))
with open("test_report.html", "wb") as f:
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title="Test Report")
runner.run(suite)
```
在这个测试报告中,我们通过open()函数创建了一个HTML格式的测试报告文件test_report.html,并使用HTMLTestRunner.HTMLTestRunner()来执行测试套件并生成测试报告。
Python爬取网页代码大全
Python可以使用多种方式爬取网页,包括requests库、urllib库、Selenium库和Scrapy框架等。下面是介绍使用requests库和BeautifulSoup库来爬取网页的代码示例。
1. 使用requests库发送HTTP请求
requests库是Python中使用最广泛的HTTP请求库,它可以轻松地实现发送HTTP请求、获取HTTP响应和处理HTTP头部等功能。下面是使用requests库来获取百度网页的HTML源码的代码示例:
```
import requests
url = "https://www.baidu.com/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
res = requests.get(url, headers=headers)
print(res.text)
```
在这个代码中,我们定义了要爬取的URL地址和请求头信息。使用requests库的requests.get()方法发送HTTP GET请求,并设置headers参数来模拟浏览器请求。最后打印HTTP响应的HTML源码。
2. 使用BeautifulSoup库解析HTML源码
BeautifulSoup库是Python中使用最广泛的HTML解析库,它可以帮助我们方便地处理HTML源码,提取有用的数据。下面是使用BeautifulSoup库来提取百度网页的搜索框的代码示例:
```
import requests
from bs4 import BeautifulSoup
url = "https://www.baidu.com/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, "html.parser")
search_input = soup.find("input", attrs={"id": "kw"})
print(search_input)
```
在这个代码中,我们先使用requests库发送HTTP请求,然后使用BeautifulSoup库的BeautifulSoup()函数将HTTP响应的HTML源码转换成一个Soup对象。使用soup.find()方法查找HTML中的搜索框元素,通过attrs参数指定元素的ID属性,最后打印搜索框元素。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复