在上面做下载图片的时候,默认图片都放在代码所在的目录中。最后将图片放在指定的目录下。
os 模块
os 模块是Python中内置的模块,可以用来生成路径。以及执行一些系统命令的功能。
os.path 路径相关
__file__
python中内置的全局变量,表示当前文件- os.path.abspath() 返回文件所在绝对路径
- os.path.dirname() 返回文件所在的目录
```python
导入 os
import os
def test_os_demo():
# 获取当前文件所在的绝对路径
# __file__ 是Python中内置的全局变量,在任何地方都可以,表示当前的文件。
# asbpath 绝对路径方法。
p1 = os.path.abspath(__file__)
print(f"当前文件绝对路径 {p1}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases\test_os.py
# os.path.dirname 当前文件的所在的目录
p2 = os.path.dirname(p1)
print(f"当前所在目录 {p2}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases
p3 = os.path.dirname(p2)
print(p3) # C:\Users\zengy\PycharmProjects\pythonProject14
<a name="HGsYz"></a>
## 创建目录
```python
# 导入 os
import os
def test_os_demo():
# 获取当前文件所在的绝对路径
# __file__ 是Python中内置的全局变量,在任何地方都可以,表示当前的文件。
# asbpath 绝对路径方法。
p1 = os.path.abspath(__file__)
print(f"当前文件绝对路径 {p1}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases\test_os.py
# os.path.dirname 当前文件的所在的目录
p2 = os.path.dirname(p1)
print(f"当前所在目录 {p2}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases
p3 = os.path.dirname(p2)
print(p3) # C:\Users\zengy\PycharmProjects\pythonProject14
# 路径拼接。 在 p3的目录下创建一个pngs目录 专门来存放图片
# os.path.join 将两个路径拼接到一起
p4 = os.path.join(p3,"pngs")
print(p4) # C:\Users\zengy\PycharmProjects\pythonProject14\pngs
# 创建目录
# 先判断目录是否存在
b = os.path.exists(p4)
print(b) # False 表示不存在
# 如果目录路径不存在
if not b:
# 创建目录
os.mkdir(p4)
- os.path.join() 将路径拼接到一起
- os.path.exsits() 判断路径是否存在
- os.mkdir() 创建目录。
创建目录,在后面我们做csv参数的化的时候,可以使用代码生成数据文件,生成的数据文件最好保存到一个特定的目录,到时候就需要使用到os 模块。
另外执行测试用例,执行完成之后生成的测试报告,也需要保存到特定的目录,也需要使用到os模块。
代码改造
改造下载豆瓣电影的代码,将所有的图片都放在 项目根目录下的pngs 目录中。
# 导入 os
import os
import requests
# 获取当前文件所在的绝对路径
# __file__ 是Python中内置的全局变量,在任何地方都可以,表示当前的文件。
# asbpath 绝对路径方法。
p1 = os.path.abspath(__file__)
print(f"当前文件绝对路径 {p1}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases\test_os.py
# os.path.dirname 当前文件的所在的目录
p2 = os.path.dirname(p1)
print(f"当前所在目录 {p2}") # C:\Users\zengy\PycharmProjects\pythonProject14\test_cases
p3 = os.path.dirname(p2)
print(p3) # C:\Users\zengy\PycharmProjects\pythonProject14
# 路径拼接。 在 p3的目录下创建一个pngs目录 专门来存放图片
# os.path.join 将两个路径拼接到一起
p4 = os.path.join(p3,"pngs")
print(p4) # C:\Users\zengy\PycharmProjects\pythonProject14\pngs
# 创建目录
# 先判断目录是否存在
b = os.path.exists(p4)
print(b) # False 表示不存在
# 如果目录路径不存在
if not b:
# 创建目录
os.mkdir(p4)
def test_download_pngs():
url = "https://movie.douban.com/j/search_subjects"
qeurydata = {
"type": "movie",
"tag": "最新",
"page_limit": 50,
"page_start": 0
}
heardersdata = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"
}
r = requests.get(url=url, params=qeurydata, headers=heardersdata)
print(r.request.headers)
print(r.status_code)
print(r.json())
# 循环服务器返回的结果
for subject in r.json()["subjects"]:
name = subject["title"]
cover_url = subject["cover"]
print(f"下面即将下载电影海报: 电影名:{name}, 海报地址{cover_url}")
res = requests.get(url=cover_url,headers=heardersdata)
# 将文件保存到指定目录
pngfile = os.path.join(p4,name+".png")
with open(file=pngfile,mode='wb') as f:
f.write(res.content)
- 执行代码之前,先将目录创建好。
- 保存文件的时候,进行文件路径拼接。
生成测试数据到指定目录
"""
项目根目录下创建csvdata 目录。
生成 用户注册的测试数据到csv文件
"""
import os
import csv
p1 =os.path.abspath(__file__)
p2 = os.path.dirname(p1)
p3 = os.path.dirname(p2)
# 项目根目录 路径拼接
p4 = os.path.join(p3,"csvdata")
# 如果不存在 csvdata
if not os.path.exists(p4):
os.mkdir(p4)
def test_register_data():
usernames = ["13212341234","1321234123","132123412341","","***&&&"]
passwds = ["","12345","1234567890123456789"]
# 指定csv文件路径
csvfile = os.path.join(p4,'register.csv')
print(f"csv文件的路径{csvfile}")
with open(file=csvfile,mode='w',encoding='utf8',newline='') as f:
# 创建写入对象
cw = csv.writer(f)
# 写入表头
cw.writerow(['用户名',"密码"])
for username in usernames:
for passwd in passwds:
print(username,passwd)
# 循环一个数据,写一行内容
cw.writerow([username,passwd])
在公司中,做接口测试,可以使用postman,jmeter 这些工具来做。
也可以使用Python来做,最终的结果还是进行测试,保证软件的质量。
也可以结合python+postman 或者 jmeter 一起进行测试。
可以使用 python 生成测试数据,在postman或者jmeter 中直接使用生成的测试数据文件进行测试。