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

第三次作业

第一题

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

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;
   }
}

答:

测试程序脚本:

java 复制代码
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 {
   @Test
   public void test(){
       getMax Max=new getMax();
       int max= Max.get_max(7,9,8);
       Assert.assertEquals(9,max);
   }

   @Before
   public void setUp() throws Exception {
   }

   @After
   public void tearDown() throws Exception {
   }
}

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

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

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 >= 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脚本

javascript 复制代码
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/软件工程发请求也得行(这样子就少了很多分析啦~)

相关推荐
美团测试工程师11 小时前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
测试者家园18 小时前
ChatGPT生成接口文档的方法与实践
软件测试·chatgpt·测试用例·接口测试·接口文档·ai赋能·用chatgpt做软件测试
Heaven64520 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
测试老哥1 天前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
测试者家园1 天前
ChatGPT接口测试用例生成的流程
软件测试·chatgpt·测试用例·接口测试·测试图书·质量效能·用chatgpt做测试
互联网杂货铺2 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
测试者家园2 天前
ChatGPT与接口测试工具的协作
软件测试·测试工具·chatgpt·接口测试·ai赋能·用chatgpt做软件测试·测试图书
测试19982 天前
Chrome+Postman做接口测试
自动化测试·软件测试·chrome·测试工具·职场和发展·测试用例·postman
爱学测试的李木子2 天前
性能】JDK和Jmeter的安装与配置
java·开发语言·软件测试·测试工具·jmeter
字节程序员2 天前
Jmeter分布式测试的注意事项和常见问题
软件测试·分布式·jmeter