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

电子科大软件测试~第三次作业

第三次作业

第一题

采用JUnit软件测试框架进行测试程序编程,实现对下面java程序进行单元测试,找出其中缺陷。然后修改缺陷,直到通过单元测试,给出测试程序脚本和运行结果界面。

public class getMax {public int get_max(int x, int y, int z) {int max;if (x >= y) max = x;else max = y;if (z >= x)max = z;return max;}
}

答:

测试程序脚本:

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import junit.framework.TestCase;public class getMaxTest extends TestCase {@Testpublic void test(){getMax Max=new getMax();int max= Max.get_max(7,9,8);Assert.assertEquals(9,max);}@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}
}

以下是运行结果,发现代码有缺陷:z如果比x大,但比y小,程序会输出z,而实际情况是y最大。

修改缺陷,以下是修改后的源程序:

public class getMax {public int get_max(int x, int y, int z) {int max;if (x >= y) max = x;else max = y;if (z >= max)max = z;return max;}
}

其实就是将其中一个x改成max

以下是单元测试通过的界面:

缺陷修改成功。

第二题

采用Postman接口测试软件对百度百科https://baike.baidu.com/搜索引擎进行接口测试。如对词条“软件工程”返回页面内容进行测试验证,给出请求参数设置、Tests脚本、Body响应结果、Test Results结果说明及运行界面。


以下是笔者的分析过程:

​ 在百度百科页面搜索软件工程,得到的网址如下:

https://baike.baidu.com/item/软件工程/25279?fromModule=lemma_search-box

如果是常规的get请求(大多数项目开发者会这样设置),在url里面应该有?word=软件工程的字符串(不一定是word这个单词,举这个例子表示形如这个url),但是该链接并不如此。

​ 于是猜测是post请求,F12打开开发者工具对输入框进行分析,发现它在form表单里,初步断定是post请求,但是这个表单不是向当前网址提交的,表单的action属性是/seach/word,所以请求的url应该是其对应的绝对路径(还得拐个弯🥺),为https://baike.baidu.com/search/word

​ 还要注意到表单的method是GET方法,于是我大胆的猜测get方法也可以,经过postman测试,用get方法向https://baike.baidu.com/search也可以达到预期目标。


答:

请求参数设置

URL:https://baike.baidu.com/search/word

Method: post

Body:

​ 键:word 值:软件工程

或者

URL:https://baike.baidu.com/search

Method:GET

参数:

​ 键:word 值:软件工程

Tests脚本

pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});pm.test("Response body is not empty", function () {pm.response.to.have.body();
});pm.test("The response contains the word '软件工程'", function () {pm.expect(pm.response.text()).to.include("软件工程");
});

Body响应结果

把你操作界面的body复制下来就可以啦~内容有很多(毕竟是百度的程序员😎)

Test Results结果

可以看到Status code is 200,Response body is not empty,The response contains the word ‘软件工程’,三次测试全部通过。

运行界面

但是为了图方便感觉用get直接向https://baike.baidu.com/item/软件工程发请求也得行(这样子就少了很多分析啦~)

相关文章:

  • 高校/企业如何去做数据挖掘呢?
  • 华为端口隔离简单使用方法同vlan下控制个别电脑不给互通
  • Go 代码检查工具 golangci-lint
  • 探索鸿蒙:了解华为鸿蒙操作系统的基础课程
  • 深度学习中的损失函数
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • 无约束优化问题求解(3):共轭梯度法
  • 2023亚马逊云科技re:Invent用Amazon Q打造你的知识库
  • 力扣单调栈算法专题训练
  • ArcGIS基础:便捷查看外业照片及识别举证照片方位角
  • 案例125:基于微信小程序的个人健康数据管理系统的设计与实现
  • StringBuilder和StringBuffer区别是什么?
  • 2.3_2 进程互斥的软件实现方法
  • java类和对象的思想概述
  • .net core webapi 大文件上传到wwwroot文件夹
  • python3.6+scrapy+mysql 爬虫实战
  • 2017届校招提前批面试回顾
  • 2019年如何成为全栈工程师?
  • 3.7、@ResponseBody 和 @RestController
  • canvas绘制圆角头像
  • JS基础之数据类型、对象、原型、原型链、继承
  • sessionStorage和localStorage
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue2 SSR 的优化之旅
  • vue总结
  • 阿里云Kubernetes容器服务上体验Knative
  • 初探 Vue 生命周期和钩子函数
  • 计算机在识别图像时“看到”了什么?
  • 聊聊hikari连接池的leakDetectionThreshold
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 如何在 Tornado 中实现 Middleware
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 十年未变!安全,谁之责?(下)
  • 无服务器化是企业 IT 架构的未来吗?
  • 项目实战-Api的解决方案
  • 用Canvas画一棵二叉树
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​ssh免密码登录设置及问题总结
  • ​TypeScript都不会用,也敢说会前端?
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (一) springboot详细介绍
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .Family_物联网
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net core 6 集成和使用 mongodb
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET MVC 验证码
  • .NET 跨平台图形库 SkiaSharp 基础应用