当前位置: 首页 > news >正文

网站开发团队简介代发百度关键词排名

网站开发团队简介,代发百度关键词排名,做网站的网址怎么弄,专业商城网站建设报价大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取。下面话不多说了,来一起看看详细的介绍吧。 1、需求 某API,GET方法,token,mobile,email三个参数 token为必填项mobil…

 大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取。下面话不多说了,来一起看看详细的介绍吧。

1、需求

某API,GET方法,token,mobile,email三个参数

  • token为必填项
  • mobile,email 必填其中1项
  • mobile为手机号,email为email格式

2、方案

针对上面的API,在做接口测试时,需要的测试用例动辄会多达10+, 这个时候采用数据驱动的方式将共性的内容写入配置文件或许会更合适。

这里考虑把API、参数、以及预期结果预行在格式化的CSV里保存,利用csv组件从CSV里读取URL、参数以及预期结果,Requests组件发起请求,将响应结果与预期结果进行比对,最后把比对结果写到结果CSV。

流程如下图 

3、实现

1、在上代码之前,先安装好如下几个组件:

  • csv  读写CSV文件
  • json
  • requests  发起请求,获取响应结果
  • unittest    测试用例调度

2、data.csv(本示例选取部分用例)

3、reader_CSV函数代码示例

import csvimport jsonimport requestsimport timeimport unittestdef readCSV(self,filename):''':param filename: 需要读取的数据文件:return: [{data1},{data2}...]'''datas = []try:#以DictReader的方式读取数据文件,方便与json互做转换with open(filename,'r') as csvfile :#从文件里读取到的数据转换成字典列表的格式reader = csv.DictReader(csvfile)for row in reader:data = {}data['id'] = row['id']data['url'] = row['url']data['token'] = str(row['token'])data['mobile'] = row['mobile']data['email'] = row['email']data['expect'] = json.dumps(row['expect']) \if isinstance(row['expect'],dict) \else row['expect'] #如果expect读取出来的不是json则取其原值,否则转为json格式保存到result里datas.append(data)return datas#如果文件找不到,返回空的datasexcept FileNotFoundError:print("文件不存在",filename)return datas

4、request_URL函数示例(包含GET请求和POST请求2个方法)

def get_request(self,url,params):'''通用的调用GET接口方法:param url:string 接口路径:param params:{"":"","":""} 需要传入的参数:return: response响应体'''print("调用API...")r = requests.get(url,params=params)print(r.text)return rdef post_request(self,url,params):'''通用的调用POST接口方法:param url: string 接口路径:param params: {"":"","":""} 需要传入的参数:return:response响应体'''print("调用API...")r = requests.post(url,params=json.dumps(params)) #post的方法必须用json.dumps()转化成json格式print(r.text)return r

5、assert_Result函数示例

def assertResult(self,except_value,real_value):'''校验样本字符串中是否包含指定字符串:param except_value: string 指定字符串:param real_value: string 样本字符串:return: Boolean 样本中包含指定字符串返回True,否则返回False'''ifsuccess = except_value in str(real_value)return ifsuccess

6、write_CSV函数示例

def writeCSV(self,filename,results):'''写入csv文件指定内容:param filename: string 需要写入的文件名称:param results: [{data1},{data2},...] 写入的内容:return: 无'''print("写文件:",filename)#以DictWriter的方式写文件with open(filename,'w+') as csvfile:headers="id,url,token,mobile,email,expect,real_value,assert_value".split(",")writer = csv.DictWriter(csvfile,fieldnames=headers)#写表头writer.writeheader()#写数据if results.__len__() > 0 :for result in results:writer.writerow(result)csvfile.close()

7、test_interface1函数示例

def test_interface1(self):#指定读取的数据文件名称data_file = "../data/data.csv"#指定最终结果生成的数据文件名称result_file = "../data/result_{}.csv".format(str(time.time()).split(".")[0])#读取指定文件的数据datas = self.readCSV(data_file)#数据文件有内容则调用接口,否则直接测试结束if datas.__len__() > 0:results =[]#获取数据文件里的每一行for testcase in datas :result = {}result["id"] = testcase["id"]result["url"] = testcase["url"]result["token"] = testcase["token"]result["mobile"] = testcase["mobile"]result["email"] = testcase["email"]result["expect"] = testcase["expect"]#组装参数params = {"token":result["token"],"mobile":result["mobile"],"email":result["email"]}#调用API接口,获取响应结果real_value = self.get_request(result["url"],params)#调用assert方法,检查预期结果是否在响应结果中存在assert_value = self.assertResult(result["expect"],real_value.text)result["real_value"] = real_value.textresult["assert_value"] = assert_value#获取每一行里的所有字段以及实际结果和验证结果results.append(result)#执行完所有记录后,将所有结果写入result.csvself.writeCSV(result_file,results) #写入csv文件print("测试结束")

8、result_1523956055.csv(本示例中的测试结果请忽略)

总结

python封装了很多方法,对于测试来说开发速度相对较快,接口自动化测试如果采用CSV管理的数据驱动方式,使用csv+requests是测试开发不容错过的利器之一。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

http://www.jinmujx.cn/news/115210.html

相关文章:

  • 服务器网站别名设置石家庄seo关键词
  • 印度网站建设如何推广品牌知名度
  • 上海都市建筑设计有限公司seo职业培训学校
  • 南京网站设计制作排名百度收录时间
  • 做电力招聘的有哪些网站抖音推广引流平台
  • 阿里云服务器如何用IP做网站关键词在线播放免费
  • 网站站内交换链接怎么做百度网盘客服电话人工服务
  • 做应用级网站用什么语言好青岛官网seo公司
  • 沈阳建网站电商seo属于什么
  • 做返利网站能赚钱么百度推广关键词质量度
  • 神华科技网站建设收录查询站长工具
  • jsp企业网站开发前期报告东莞网络营销平台
  • 汉堡只做网站广告竞价推广
  • 网站太花哨艺考培训
  • 编程培训机构哪里好seo西安
  • 做直播的网站什么是百度搜索推广
  • 网站套利怎么做无锡网站建设seo
  • 做网站需要用到那些软件十八未成年禁用免费app
  • 工信部网站查询网站访问量排行榜
  • 做胎儿羊水鉴定网站镇江百度公司
  • 昆明网络推广昆明网站建设昆明昆明如何做网站搜索引擎优化
  • 广告公司做网站的效果怎么样线上销售的方法和技巧
  • 开发网站的项目背景描述yande搜索引擎官网入口
  • 建设网站服务器选择seo文章生成器
  • 邢台疫情最新政策全国最好网络优化公司
  • 网站设计需求搜索引擎优化的方法有哪些?
  • 推荐网站在线看兄弟们seo是什么职业
  • 做标书有哪些网站能接到职业培训机构哪家最好
  • 请人做网站注意事项深圳seo优化外包
  • 关于公司网站怎么做谷歌浏览器免费入口