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

美食类网站开发需求沈阳网站seo优化哪家好

美食类网站开发需求,沈阳网站seo优化哪家好,住房和城乡建设部建设司网站首页,什么是网站搭建在设计自动化测试框架的时候#xff0c;我们会经常将测试数据保存在外部的文件#xff08;如Excel、YAML、CSV#xff09;#xff0c;或者数据库中#xff0c;实现脚本与数据解耦#xff0c;方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测…在设计自动化测试框架的时候我们会经常将测试数据保存在外部的文件如Excel、YAML、CSV或者数据库中实现脚本与数据解耦方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测试用例通过脚本读取出来驱动自动化测试代码执行。至于采用Excel还是YAML格式各位小伙伴都有不同见解比如用Excel维护直观、修改数据方便劣势是通过Git这样的版本控制工具不太好比较历史版本差异因为是二进制格式YAML的优势是支持数据格式完备、版本控制管理方便文本格式劣势是没有Excel这么直观。Excel这种方式大家比较熟悉了本文带着大家来了解如何基于YAML设计自动化测试框架。 YAML格式测试用例设计 以接口自动化为例用YAML编写测试用例要实现的基本功能需求 一个YAML文件能够支持多个用例存储需求不然几千个用例对应几千个YAML文件管理起来也受不了用例中能够支持单接口测试用例也能支持业务场景用例多个接口调用组合用例中需要包含所属模块、用例名、请求信息、断言信息、提取响应实现接口关联等信息 基于上述需求我们来设计一版YAML格式用例 - casename: 登录成功module: 用户模块teststeps:- name: 正确用户名、密码进行登录request:method: POSTurl: /loginheaders:Content-Type: application/jsonjson:username: lemon_autopassword: lemon123456appType: 3loginType: 0extract:token: access_tokenvalidate:- eq: [status_code, 200]- eq: [nickName, lemon_auto]casename与module字段简单我们来看下teststeps为什么teststeps是数组类型 因为用例中包含一个/多个接口请求步骤也就是一个TestCase包含了多个teststep每一个teststep就是一个接口请求。 request中指定接口请求信息包括接口请求方法、请求地址、请求头、请求参数其中不同的请求参数类型我们需要进行区别上述的是json传参如果是form表单、查询参数传参我们都可以约定为类似的key-value结构只需要将json改为formparam、queryparam。 需要注意的是文件上传接口的参数会比较特殊一般来说我们只需要设置要上传文件路径即可所以我们可以这样设计 - casename: 上传图片module: 用户模块teststeps:- name: 正常上传图片request:method: POSTurl: /p/file/uploadheaders:Content-Type: multipart/form-datafile: src/test/resources/upload.pngextract:resourcesUrl: resourcesUrlfilePath: filePathvalidate:- eq: [ status_code, 200 ]extract字段为要提取的响应数据字段传递给后续的接口使用。一般我们要求能够支持JsonPath表达式或者正则表达式来提取对应的key为要提取的字段名对应的值为要提取的字段表达式。 validate字段是断言信息也就是验证响应结果是否符合预期。这里我们需要支持常用的判断方法包括等于、大于、小于、大于等于、小于等于通过简写eq代替equals等于判断其他的类似大于等于ge、小于等于le、小于lt、大于gt。 上述的是单接口测试用例我们看下多接口串联业务场景用例编写的样式 ModifyUserProfile.yaml - casename: 修改用户头像module: 用户模块teststeps:- name: 登录成功request:method: POSTurl: /loginjson:username: lemon_autopassword: lemon123456appType: 3loginType: 0headers:Content-Type: application/jsonextract:token: access_tokenvalidate:- eq: [status_code, 200]- eq: [nickName, lemon_auto]- name: 进入到个人中心request:method: GETurl: /p/user/userInfoheaders:Authorization: ${token}validate:- eq: [status_code, 200]- name: 上传头像request:method: POSTurl: /p/file/uploadheaders:Authorization: ${token}Content-Type: multipart/form-datafile: src/test/resources/upload.pngextract:resourcesUrl: resourcesUrlfilePath: filePathvalidate:- eq: [status_code, 200]在多接口测试中重要的是要能够支持参数传递这里我们在前一个接口使用extract提取接口的响应字段在后续要使用的接口中通过${token}方式进行引用熟悉Jmeter接口测试工具的同学应该非常熟悉这种格式。 脚本读取YAML数据 在读取YAML文件数据之前我们首先需要了解两个概念序列化与反序列化 把对象转换为字节序列的过程称为对象的序列化把字节序列恢复为对象的过程称为对象的反序列化。 而我们读取YAML的过程就可以称之为反序列化。 主流的编程语言都能实现对YAML的解析接下来以Java语言为例讲解如何读取YAML文件的内容: Java中能够实现YAML序列化和反序列化的库有很多包括SnakeYaml、Jackson、jYaml等使用起来大同小异。以使用Jackson为例 步骤一Maven POM文件中添加库的坐标 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.10.2/version /dependencydependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-yaml/artifactIdversion2.10.2/version /dependency dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.12/versionscopeprovided/scope /dependency这里用到了jackson-databind与jackson-dataformat-yaml其中jackson-databind是Jackson的主库jackson-dataformat-yaml是支持YAML数据格式的库在这里同时引入了lombok是为了后面编写实体类时简化一些代码的书写 Lombok可以来帮助我们简化一些必须有但显得很臃肿比如get/set方法的Java代码的工具通过使用对应的注解可以在编译源码的时候自动生成对应的方法。 步骤二编写YAML实体类 对照YAML文件内容比如字段名比如 “姓名”和字段的数据类型比如字符串创建一个对应的类用来在 Java 中表示YAML文件的信息。目的是为了能够将YAML文件保存到Java对象中反序列化。 TestCase实体类 Data NoArgsConstructor AllArgsConstructor public class TestCase {private String casename;private String module;private ListTeststep teststeps; }Teststep实体类 Data NoArgsConstructor AllArgsConstructor public class Teststep {private String name;private Request request;private HashMapString,String extract;private ListValidate validate; }Request实体类 Data NoArgsConstructor AllArgsConstructor public class Request {private String method;private String url;private HashMapString,Object json;private HashMapString,Object formparam;private HashMapString,Object queryparam;private String text;private String file;private HashMapString,Object headers; }Validate实体类 Data NoArgsConstructor AllArgsConstructor public class Validate {private ListObject eq;private ListObject gt;private ListObject ge;private ListObject lt;private ListObject le; }通过Jackson读取YAML文件内容并保存到TestCase实体类对象中 public static ListTestCase loadYaml(String path){ObjectMapper objectMapper new ObjectMapper(new YAMLFactory());ListTestCase cases null;try {cases objectMapper.readValue(new File(path), new TypeReferenceListTestCase() {});} catch (IOException e) {System.out.println(path格式非法请检查配置);e.printStackTrace();}return cases; }其中new TypeReferenceListTestCase() {}是因为读取到的YAML文件中有多个TestCase用例所以我们需要定义为List集合类型来接收。 来看看读取之后的效果 后续即可通过返回的testCase发起接口请求比如通过REST-assured、进行接口断言、提取响应字段等操作。
http://www.hkea.cn/news/14358345/

相关文章:

  • 怎么看网站被惩罚免费企业自助建站平台
  • 在线做插画的网站怎么建好网站
  • 沈阳网页建站模板导购网站 icp备案要求
  • 做外贸有哪些好的网站网站开发人员 生活
  • 建站公司网站论坛微信小程序下载app
  • 广州网站建设推荐q479185700霸屏网站服务器租用年度价格
  • 找论文的免费网站外国网站域名
  • 销售网站设计方案建立一个企业网站需要多少钱
  • 凉山州建设厅官方网站南京 郑州网站建设公司 网络服务
  • 西部网站管理助手酒店可以采用的网络营销方式
  • 河南国正建设集团公司网站网站后台管理系统的重要技术指标
  • 手机网站404页面vs 网站开发教程
  • 设计模板素材网站大庆建设工程交易中心网站
  • 彩票网站源码下载windows优化大师会员
  • 开封建设网站做网站 广告 备案
  • 中国建设银行中国网站工装哪家装修公司好
  • 安平做网站前端开发工程师要求
  • 支付网站开发一起做网店潮汕
  • 创建游戏网站游戏网站开发需求分析
  • 互联网保险平台哪家最好网站关键字优化价格
  • 网站经营性备案需要什么资料中英双语网站源码
  • 雅安市网站建设网络营销工具主要类型有
  • 营销型网站建设eyouc雄安建设工程信息网站
  • 医院手机网站建设网站不备案打不开
  • 广州 骏域网站建设专家dw软件是做什么用的
  • 中国科协网站建设招标网站做公司简介怎么做
  • 企业微网站建设方案wordpress安装500错误
  • 中山建设工程招聘信息网站仿站视频教程
  • asp做的网站设计电脑网页
  • 淄博个人网站建设大连是谁建设的