项目实战(三)

框架优化:

---excel 数据的写入,可以写入的内容:pass,fail ,测试结果,或者接口返回数据。

---yaml配置了host地址

---手机号码生成。(必须要动态生成)faker,random,加上数据库校验,检测自动生成的手机号码是否已经在数据库中已经存在了

def generator_new_phone():
"""生成随机手机号码"""
# 创建一个指定中文的Faker对象
fk = Faker(locale="zh_CN")
while True:
# 获得随机手机号码
phone = fk.phone_number()
# 获得数据库连接对象,数据库连接对象初始化放循环里,因为创建一个连接对象初始化一个游标,一个游标执行最好是执行一条sql语句
db = DatabaseHandler()
sql = "SELECT * FROM member WHERE mobile_phone='{}'".format(phone)
flag = db.query(sql)
db.close()
if not flag:
return phone
一个已经在数据库存在的手机号码,该怎么做?使用测试账户,放入配置文件,切记git提交时需要过滤。配置文件命名为:security.yaml

---数据库封装pymysql(dataset拓展)

数据初始化,初始化连接,以及游标,实例属性为连接和游标。

实例方法传入的参数是sql,完整的sql语句

查询实例方法,除了sql外还行传入一个控制标记,标记是否执行fetchone还是fetchall。

新增、修改、删除,需要conn.commit

关闭实例方法:

self.cursor.close()

self.conn.close()

先关闭游标再关闭连接        

.gitignore文件内容过滤

data/           ----将测试数据全部过滤掉,过滤掉后别人不知道怎么使用,这时你可以创建一个data_example,放测试数据的样例,告诉别人怎么用

security.yaml   -----隐私配置文件

---登录用例测试

特殊用例:

1、手机号码未注册的:怎么判断是未注册的?(自动生成手机号码,查询数据库,如果不存在,即为未注册的用户,与注册成功用例处理是一样的)

2、登录成功用例以及手机号码为正确的用例:数据库存在的用户(手机号码+密码),使用测试账户,将测试账户放入yaml文件中,进行动态替换,提交git可进行过滤

总结:

1、调试:但测试用例失败的时候,需要调试,需要先打印请求,查看请求数据是否正确,经过处理的request_data数据,然后再打印excel解析出来的数据

2、数据库封装类,初始化,一个数据库连接,一个游标,一个游标执行一条sql语句,执行完后需要关闭游标,关闭连接。

3、测试用例params中,如果存在"female":true,但是在python字典中,"female":True,json中为true,故在请求中就转换不了为json,会报错,此处需要用到json的序列化和反序列化。

posted @ 2021-01-29 14:20  %女王%  阅读(66)  评论(0编辑  收藏  举报