使用面向对象的编程思想,来进行独立接口面向对象的设计,一个接口测试对应一个类,这样后面做框架也比较规范一些。
类定义包含类的属性和类的方法。
类属性包含接口访问地址和接口测试数据
类方法包含测试方法
1、V1.0 实现一组正常注册数据的接口测试
# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests
#定义测试类
class register_test():
# 定义属性,一般是定义在类的初始化方法中
def __init__(self):
self.url="http://localhost:8080/jwshoplogin/user/register.do"
self.userinfo={"username":"程勇",
"password":"123456",
"email":"chengyong@51testing.com",
"phone":"13889564546",
"question":"喜欢读的书",
"answer":"幸福人生"}
def registertest(self):
#发送接口请求
s=requests.session()
response=s.post(self.url,data=self.userinfo).json()
print(response)
if __name__ == '__main__':
registobj=register_test()
registobj.registertest()
输出结果:
{'status': 0, 'data': '注册成功'}
2、实现CSV读取数据传入
# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests
import csv
import requests
#定义测试类
class register_test():
# 定义属性,一般是定义在类的初始化方法中
def __init__(self):
self.url="http://localhost:8080/jwshoplogin/user/register.do"
def registertest(self):
#发送接口请求
file1=open("userinfo.csv","r")
table=csv.reader(file1)
self.userinfo = {}
for row in table:
print(row[0])
self.userinfo["username"]=row[0]
self.userinfo["password"]=row[1]
self.userinfo["email"]=row[2]
self.userinfo["phone"]=row[3]
self.userinfo["question"]=row[4]
self.userinfo["answer"]=row[5]
s=requests.session()
response=s.post(self.url,data=self.userinfo).text
print(response)
file2.close()
if __name__ == '__main__':
registobj=register_test()
registobj.registertest()
测试结果:
程勇6
{"status":1,"msg":"邮件已经存在"}
程勇7
{"status":0,"data":"注册成功"}
3、V3.0 实现测试报告的写入
# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests
import csv
import requests
#定义测试类
class register_test():
# 定义属性,一般是定义在类的初始化方法中
def __init__(self):
self.url="http://localhost:8080/jwshoplogin/user/register.do"
def registertest(self):
#发送接口请求
file1=open("userinfo.csv","r")
file2=open("testresult.csv","w")
table=csv.reader(file1)
self.userinfo = {}
for row in table:
print(row[0])
self.userinfo["username"]=row[0]
self.userinfo["password"]=row[1]
self.userinfo["email"]=row[2]
self.userinfo["phone"]=row[3]
self.userinfo["question"]=row[4]
self.userinfo["answer"]=row[5]
s=requests.session()
response=s.post(self.url,data=self.userinfo).text
print(response)
msg=response.find("status")
if msg>0:
print("测试通过")
file2.write("测试通过"+"\n")
else:
file2.write("测试失败"+"\n")
file2.close()
if __name__ == '__main__':
registobj=register_test()
registobj.registertest()
运行结果:
其中邮件和用户名前面用过一次,所以不能再用了。
程勇6
{"status":1,"msg":"邮件已经存在"}
测试通过
程勇7
{"status":1,"msg":"用户名已经存在"}
测试通过
测试结果已经写入到结果的CSV文件中。
希望本篇文章对您有帮助,愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为社会创造更大的价值,为公司节约更多的成本,为自己和家庭谋求更高的收入,所有人不受职业年龄限制,越老越吃香,直至财富自由;愿测试技术越来越进步,软件质量进一步得到提高,效率提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。