sys模块
首先,在使用模块之前要做的事情当然是导入需要的模块了。那么,这里说一个关注点,加入存在相同名称的模块的时候,那么PyCharm会怎么去判断你需要导入的是哪个呢?在这里说一下它默认的导入模块顺序:
1、当前目录下找这个python文件;2、去python的环境变量里面找这个python文件。
import sys
print(sys.path)# 查看python的环境变量
举一个例子进一步说明导入模块的意义:
①新建一个a.py文件和b.py文件
②在b.py文件中输入:
print('这是b文件~')
③在a.py文件中输入:
import b
④执行a.py文件
这里就发现了输出了 ‘这是b文件’
导入模块的实质:
把这个模块的代码,从头到尾执行一次
那么接下来简单的说一下sys模块:
import sys
# print(sys.argv) # 他会把你运行python文件的时候,传入的参数,都放到这个argv里面
command = sys.argv
# python run_case.py aa.xls
if len(command)>1:
excel = command[1]
print('用力已经运行完成')
else:
print('运行这个python文件的时候,需要传入一个用例名称,例如:'
'python run_case.py case.xls')

mongodb的简单操作
# mongodb,也是一个非关系型数据库
import pymongo
client = pymongo.MongoClient(host='xxx.xxx.xxx.xxx',port=27017)
db = client['spz_wj'] # 选择数据库,如果该数据库不存在,则会自动创建
collection = db['stu_info']
db['stu_info'].insert({'name':'小黑','sex':'男'}) # stu_info不存在会自动创建
db['stu_info'].insert({'url':'http://www.baidu.com','title':'百度'}) # url、title不存在,会自动添加
db['stu_info'].insert({'jd':'http://www.JD.com','title':'京东'})
for d in db['stu_info'].find({'title':'百度'}):
print(d)
print(list(db['stu_info'].find({'title':'百度'})))
collection.delete_one({'title':'百度'}) # 如果有多条的话,只会帮你删掉一条
collection.delete_many({'title':'百度'}) # 删除多条
print(list(collection.find()))
collection.update({'jd':'http://www.JD.com','title':'京东'},{'jd':'http://www.jd.com','title':'京东','addr':'亦庄'})
接口开发
作为一个测试为什么要学会做接口开发呢?答案是当然是有必要的!简单的说一下理由:
1、知道需要测试的接口是怎么开发的,更好的理解需求;2、可以避免别人操作自己的数据库;3、mock(模拟)服务
那么我们简单实践一下:
(简单的登录接口)
import flask
import json
server = flask.Flask(__name__) # 把当前这个python文件当作一个服务
@server.route('/login',methods=['get','post']) # 紧挨函数名称,该函数即变为一个接口,支持[get/post请求]
def login():
# username = flask.request.args.get('username') # 是从客户端发过来的数据
# pwd = flask.request.args.get('password')
# request.args 方式 参数必须跟在url后面,放在body里面不行
username = flask.request.values.get('username') # 是从客户端发过来的数据
pwd = flask.request.values.get('password')
# flask.request.cookies.get('xxx') # 获取cookie
# flask.request.headers.get('xxx') # 获取headers
# json_data = flask.request.json.get('username') #这个获取入参是json类型的
if username=='admin' and pwd=='123456':
res = {'code':1000,'msg':'登录成功','sign':'sdf123sdfdfgha'}
else:
res = {'code':2000,'msg':'账号/密码错误!'}
return json.dumps(res,ensure_ascii=False)
server.run(port=8989,debug=True) # 启动服务 (默认host=127.0.0.1,port=5000,可在括号中进行修改)
我们用Postman检验一下是否成功:

操作excel
# xlwt # 只能写excel
import xlrd # 只能读
book = xlrd.open_workbook('nhy.xls')
sheet = book.sheet_by_index(0)
print(book.nsheets) # 获取excel里面有多少sheet页
# book.sheet_by_name('sheet1')
print(sheet.cell(0,0).value) # 指定行和列,获取某个单元格里面的内容
print(sheet.cell(1,0).value)
print(sheet.row_values(0)) # 获取某一行的数据
print(sheet.row_values(1))
print(sheet.nrows) # 这个就是excel里面总共有多少行
print(sheet.col_values(0)) # 某一列的数据
print(sheet.col_values(1))
print(sheet.ncols) # 这个就是excel里面总共有多少列
--------修改excel--------
import xlrd
from xlutils import copy
book1 = xlrd.open_workbook('nhy.xls')
# 打开原来的excel
new_book = copy.copy(book1)
# 拷贝一个新的excel
sheet = new_book.get_sheet(0)
# 获取第一个sheet页
sheet.write(1,3,'18')
sheet.write(1,1,'小黑')
new_book.save('nhy.xls')
浙公网安备 33010602011771号