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

网站开发嘉比格网络qq号码免费申请注册

网站开发嘉比格网络,qq号码免费申请注册,网站建设论文 网站建设论文,ppt模板简洁大方前言#xff1a;本文主要介绍在企业使用Python搭建接口自动化测试框架#xff0c;数据驱动读取excel表里的数据#xff0c;和数据库方面的交互#xff0c;包括关系型数据库Mysql和非关系型数据库MongDB#xff0c;连接数据库#xff0c;读取数据库中数据#xff0c;最后…前言本文主要介绍在企业使用Python搭建接口自动化测试框架数据驱动读取excel表里的数据和数据库方面的交互包括关系型数据库Mysql和非关系型数据库MongDB连接数据库读取数据库中数据最后输出完整的测试报告 前面已经学习了如何用SpringBoot写接口以及与Mysql数据库进行交互具体可查阅下面的这篇博客 MVC架构SprintBoothtml/css/jsmybatis的demo_MRJJ_9的博客-CSDN博客 本次搭建接口自动化框架的gitee仓库地址 interface_auto_test: RquestsPytestAllure 目录 搭建流程图 搭建前的准备工作 request库发送请求 数据驱动 Python与数据库的交互 PythonMysql PythonMongDB 输出Allure报告 项目结构 总结 流程图 接口自动化测试搭建流程  先写登录接口接口数据与MysqlMongo进行交互启动项目后使用Python开始搭建整个测试框架 搭建前的准备工作 在搭建整套接口自动化测试流程前要有开端提到的接口测试的范围与数据库的交互明白业务的逻辑接口请求类型是什么传参是什么预期返回是什么 这里简单写了一个登录的接口传入的邮箱手机号密码必须符合一定的限制条件否则不能登录成功 关于正则表达式参考了下面的文章 什么是正则表达式怎么写使用场景等都在这里了 - 知乎 (zhihu.com) 正则表达式常用的_/^1[3456789]\d{9}$/_Oxygen_liu的博客-CSDN博客 JAVA 手机号码格式验证使用正则表达式_java 正则手机号195_Steven Jon的博客-CSDN博客 JAVA 电子邮箱格式验证使用正则表达式_java邮箱正则表达式_Steven Jon的博客-CSDN博客 JAVA正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合____NULL的博客-CSDN博客 package com.example.interfaceautotest.controller;import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/test) public class Login {PostMapping(value /login, produces application/json)public String Login(String usr, String pw) {//加入业务判断规则用户名只能输入手机号和注册的邮箱//usr可以输入手机号 也可以输入邮箱//大写字母、小写字母、数字、特殊符号不是字母数字下划线汉字的字符的8位以上组合//手机号 第一位数字是1 第二位数字只能是3或4或5或6或7或8或9 剩下的九位数字可以是0-9之间任意一位数字//邮箱判断if ((usr.matches(^1[3-9]\\d{9}) || usr.matches(^(\\w([-.][A-Za-z0-9])*){3,18}\\w([-.][A-Za-z0-9])*\\.\\w([-.][A-Za-z0-9])*$)) pw.matches(^(?![A-Za-z0-9]$)(?![a-z0-9\\W]$)(?![A-Za-z\\W]$)(?![A-Z0-9\\W]$)[a-zA-Z0-9\\W]{8,}$)) {return 登录成功;} else {return 登录失败;}} } request库发送请求 这部分可参考接口测试基础那篇博客最常用到get、post两种请求传递参数类型有params、json、data请求参数也可参考下面的这篇博客 CSDN 请求参类型paramsjsondata 含义理解_params和data、json传参的区别_默金……的博客-CSDN博客 这里举post接口传params的例子以开发文档为主依赖于接口的定义 import requests class Login:def login(self,usr,pw):data {usr:usr,pw:pw}res requests.post(http://localhost:8080/test/login,datadata) #也可以用paramsreturn res.text if __name__ __main__:res Login().login(18988888888,ABCabc012!#)print(res) 数据驱动 读取excle里的数据用到xlrd库读取数据并将字符串格式的参数转成json格式用于传递参数 import xlrd import jsondef is_json(str_data):try:json.loads(str_data)except ValueError:return Falsereturn Trueclass Argument:def excel_control(self, tablePath, sheetName, caseName, *args):workBook xlrd.open_workbook(tablePath) # 打开表格workSheet workBook.sheet_by_name(sheetName) # 取第特定sheet页的表格# 取列标 不确定要取哪列的数据 表头字段 对应的列标index []for i in args:index.append(workSheet.row_values(0).index(i))case_index 0list_case []for one in workSheet.col_values(0): # 第一列数据遍历if caseName in one: # 如果第一列中包含“login” 取出特定列getdata []for num in index: # 要取出的第多少列的数据res workSheet.cell(case_index, num).value # 取出第多少行第多少列的数据# 字典转为字符串if is_json(res):res json.loads(res)getdata.append(res)list_case.append(getdata)case_index 1return list_caseif __name__ __main__:res Argument().excel_control(../data/test_data.xls, 登录, login, 请求参数) Python与数据库的交互 在做接口自动化时对返回结果进行断言时需要对数据准确性进行判断就需要用到查询数据库的操作下面介绍两种数据库主要涉及Python如何连接和操作数据库 PythonMysql mysql数据库是一种关系型数据库表内表间具有一定的依赖关系比如用户登录账号、用户的基本信息等一般存储在mysql数据库中 连接myslq处理数据可以从mysql中插入、取出数据 import pymysql class GetUserInfo(object):def query_mysql(self):#连接数据库 ip 用户名 密码 数据库名db pymysql.connect(host127.0.0.1,userroot,password123456,databaseauto_test_data,charsetutf8)print(数据库连接成功)try:#获得执行mysql命令的方法cursor db.cursor()#sql查询语句sql_query_usr SELECT phone,email,pw FROM user WHERE usr test003cursor.execute(sql_query_usr)#执行Mysql语句user_info cursor.fetchall()#接收全部的返回结果行print(user_info)print(type(user_info)) #查出的数据 存到一个元组里except Exception:print(查询失败)db.close() #关闭数据库 if __name__ __main__:usr_info GetUserInfo().query_mysql()PythonMongDB MongDB数据库中可以包含多个文档是一个集合的物理容器相当于就是关系数据库中的表以json格式存储数据 import pymongo client pymongo.MongoClient(host localhost, port 27017) print(client.list_database_names()) #读取哪个数据库 db client[my_test_data] #也可以写成client.my_test_data #读取哪个数据表 collection db[test_data] #也可以写成db.test_data #查询集合下有多少个文档 print(collection.count_documents({})) #筛选出name的值是test002的文档 print(collection.find_one({name:test002})) 输出Allure报告 根据excel里的数据传入参数调用接口最终会得到每一条case的结果可以使用allure库 展示出整个的完整接口自动化测试报告 import pytest, os, allure from data_driven_tools.excel_control import Argument from libs.login import Loginallure.epic(Test) #史诗级 大的模块 对应allure报告的第一层 allure.feature(登录模块) #功能点描述 XX模块 对应第二层 #类名必须以Test开头 class Test_login():# 在xls表里取出传入的参数pytest.mark.parametrize(caseTitle,data,expdata,Argument().excel_control(../data/test_data.xls, 登录, login, 用例名称, 请求参数,返回结果))allure.story(登录接口) #更为具体一层 具体场景 对应第三层allure.title({caseTitle}) #对应每一条测试用例的名称 在excel里维护#调用接口层 传入excel的参数#方法名必须以test_开头def test_login(self, caseTitle, data, expdata):data Login().login(data[usr], data[pw])#进行断言assert data expdataif __name__ __main__:#pytest框架程序运行入口pytest.main([test_login.py, -s, --clean-alluredir,--alluredir,../report/tmp])#打开报告os.system(allure serve ../report/tmp)main()函数命令行里的参数使用介绍 test_login.py执行的函数 如果为空就运行当前项目下所有test_*.py或_test*.py这样的文件 也可以进行指定运行的路径例如../test_case/test_login.py表示执行回到上层目录进入test_case文件夹执行test_login.py文件 执行py文件里指定的类指定的方法../test_case/test_login.py::Test_login::test_login -k可以使用and、or、not等逻辑运算符区分匹配的范围文件类函数名 -s可以在控制台输出print信息需要去掉-v参数 -v显示详细的用例执行信息如下图所示 -q不输出用例执行的情况  -x出现一条失败的测试用例就退出测试 --alluredir清除上次执行的旧报告 --alluredir  ../report/tmp生成新报告后面是新报告数据的生成路径 项目结构 整个项目结构是比较清晰的分为接口层数据驱动层测试用例层 configs可用来存放配置文件 dataexcel测试用例的数据 data_driven_tools数据驱动工具读取excel里的数据传给接口 libs使用request库调用接口 report用于存放生成allure报告的原始数据格式是json test_case存放测试用例pytest框架执行程序的入口 requirements.txt文件其他人配置环境需要添加的第三方库可自动生成和下载 生成命令pip freeze requirements.txt 下载命令pip install -r requirements.txt 总结 本篇博客总结了接口自动化项目的整个流程用到了Pytest库、Allure库xlrd读取excel里的测试用例以及python操作数据库对数据准确性做验证实现了接口自动化测试对重要接口进行测试和数据验证可用于冒烟测试紧急发版前进行自动化测试在企业落地后可以提升工作效率节省手工测试的时间
http://www.hkea.cn/news/14509033/

相关文章:

  • 网站开发有哪些要求网站的用途
  • 网站换主机换域名北京网站建设机构
  • 网站设计模块西安市建设工程信息网平台官网
  • 卡地亚手表官方网站phpwind做的网站
  • 定做网站多少钱手机端网站如何做
  • 企业的网站建设费账务处理企业推广平台排行榜
  • 做准的算命网站旅游企业网站建设
  • 龙岗英文网站建设pc网站转换手机网站代码
  • 昆明网站seo优化注册公司网上核名网站
  • 静态网站开发课程店面设计费入什么科目
  • 大神自己做的下载音乐的网站网站开发部门的规章制度
  • 手机如何创造网站南京网站优化网站建设公司
  • 评论凡科网站建设怎么样wordpress模板 户外钓鱼类网站
  • 甘肃省建设工程安全质量监督管理局网站团购网站发展
  • 做网站必须会编程吗国内坚持做正品的网站
  • wap 网站怎么做子网站
  • 建网站是自己做还是用CMS淘宝刷网站建设
  • 盐山网站建设不连接wordpress安装
  • 湖北餐饮网站建设太仓智能网站建设
  • 怎么建视频网站免费的会计网站模板
  • 微商手机网站制作河南工程建设交易信息网
  • 想把比尔的网站封了如何做有没有工程外包的网站
  • 网站开发教程收费版多商户商城系统源码
  • dede添加网站背景美橙互联网站
  • 自己做的网站页面错误有关网站开发的论文
  • 深圳外贸建站及推广项目分享平台
  • wordpress实例网站福州网站设计哪家做的好
  • 不下载直接登录qq聊天优化方案英语必修二电子版
  • 网站建设要考虑哪些内容网站运营费用预算
  • 店面设计费宁波附近的seo推广