- 博客(33)
- 收藏
- 关注
原创 Java接口自动化测试框架系列(八)测试结果通知(钉钉通知)
通过前七步的框架搭建,此时框架已经可以开始进行接口测试了,但是运行的结果需要手动去项目的工作空间去查看,非常不方便。很多公司使用的钉钉来进行日常办公的沟通,我们也可以通过发送钉钉消息,来推送测试结果。钉钉设置在钉钉群聊的智能群助手中选择添加自定义机器人机器人添加完成后可以给机器人进行取名、获取webhook与密钥。代码编写新建DingTalkRobot方法类package ...
2022-09-05 11:26:00
66
原创 Java接口自动化测试框架系列(七)Jenkins设置
前言框架的jar与执行都依赖与Maven,需要在Jenkins的运行服务器上安装Maven。Gitee设置我自己私人的代码库是设置到Gitee上的,公司的代码库是在Gitlab上,由于保密原因,我们拿私人代码库来举例子。在Gitee安全设置中新增私人令牌密钥生成后,复制生成的密钥,并配置到在Jenkins全局凭证中。在Jenkins系统配置中添加Gitee的配置,其中的证书令...
2022-09-05 10:57:00
46
原创 Java接口自动化测试框架系列(六)测试报告生成
使用ExtentReports来进行测试报告的生成package com.Auto_Test.listeners;import com.aventstack.extentreports.ExtentReports;import com.aventstack.extentreports.ExtentTest;import com.aventstack.extentreports.Res...
2022-09-05 10:21:00
83
原创 Java接口自动化测试框架系列(五)测试框架整体执行流程
通过前四步的框架完善,此时已经可以开始写TestCase。但是想框架整体运行流畅还需要对maven与testng的配置文件进行编写。一、Maven配置文件在pom.xml文件种配置框架所需要的jar包坐标,并通过build配置编码、版本、执行的文件地址、存在case失败时的处理方式等信息<project xmlns="http://maven.apache.org/POM/4.0...
2022-09-05 10:12:00
45
原创 Java接口自动化测试框架系列(四)TestNG测试数据参数化与加密方法
一、测试数据参数化TestNG参数化大致有两种方式使用@Paramenters读取xml中的参数使用@DataProvider注解传参由于数据是保存到excel中,所以使用@DataProvider注解来进行测试参数的取值通过Java接口自动化测试框架系列(二)表格设计与数据读取来进行excel中数据的读取 //配置文件取值 @DataProvider(name = "h...
2022-09-02 14:07:00
149
原创 Java接口自动化测试框架系列(三)LOG信息的处理
既然是搭建自动化测试框架,肯定是希望框架的整体功能是全面的。如果在执行过程中出了问题,通过log进行查看是比较方便的,所以需要有一个log方法来记录日志。记录日志比较常用的是log4j,我们以log4j来编写公共的log类来进行日志的保存。Maven坐标<dependency> <groupId>log4j</groupId> ...
2022-09-02 13:30:00
40
原创 Java接口自动化测试框架系列(二)表格设计与数据读取
一、测试系统分析不同系统有不同的接口,通过分析这些接口,提取共同点可以得到不同地区的系统共有的接口。如:登录、登出、用户信息完善等接口二、表格设计不同列定义不同的参数不同行定义不同的地区由于不同地区的接口加密方式不同,所以直接在表格中规定接口的地区、接口地址、验签方式(encryption_type)、密钥等字段。三、表格解析解析方法package com.Auto_...
2022-09-01 16:51:00
31
原创 Java接口自动化测试框架系列(一)自动化测试框架
一、什么是自动化测试自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例一步步执行测试,得到实际结果与期望结果的比较。为了节省人力、时间等资源,提高测试效率,便引入了自动化测试的概念。二、自动化测试的缺点很多人认为会使用接口测试工具就是会接口测试。其实接口测试远远不止是工具的使用,Jmeter也好,Postman也好,...
2022-09-01 15:45:00
25
原创 测试基础(四)Jmeter基础使用
前言通过测试基础(三) Jmeter安装 - 大风北吹 - 博客园 (cnblogs.com)安装完成Jmeter后,就可以使用Jmeter进行性能测试。一、线程组(1)、线程组分类 Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组 ①线程组 这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都...
2021-07-15 15:53:00
27
原创 测试基础(三) Jmeter安装
前言JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。进入Jmeter官网:https://jmeter.apache.org/,进行Jmeter压缩包的下载。下载完成后将压缩包中的文件提取出来,并放入E盘(可选择任意盘符,记住放Jmeter文件的地址即可)。下一步即可开始进行环境变量的配置①新增系统变量“JMETER_HOME”,本机的JMET...
2020-01-13 16:25:00
27
原创 测试基础(二)Http协议
前言HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP消息结构①HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。②一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何...
2019-12-30 14:51:00
26
原创 测试基础(一)测试用例设计
前言:测试用例是软件测试中基础的基础,即使技术再NB,设计不出好的测试用例,也发现不了BUG。测试人员在刚开始工作时一定要打好测试用例的基础!!!一、什么是测试用例一组由前提、优先级、测试数据、执行条件、预期结果等组成的,以完成对某个特定需求或者目前的文档。二、测试用例的作用与目的作用:可以帮助软件测试人员更加科学有效的进行组织规划以及记录测试过程。目的:测试程序是否满足特定(一般...
2019-12-26 09:23:00
73
原创 MyBatis系列(四) MyBatis 增删改
前言通过前几张的博文已经知道MyBatis是如何查询数据库中的数据,现在来介绍增(insert)删(delete)改(update)增加接口绑定文件定义一个增加方法,方法的返回值为long,在MyBatis中返回的是受影响行数。public interface MusicImp { public Long getinsertMusic(Music music);}SQL映...
2019-12-15 15:44:00
25
原创 MyBatis系列(三) MyBatis 配置文件
一、properties此标签的主要作用是引用配置文件,以数据源来举例。新建mybatis-confing.properties配置文件mybatis-confing.propertiesdriver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useS...
2019-12-13 10:58:00
29
原创 MyBatis系列(二) MyBatis接口绑定与多参数传递
前言通过上一篇博文的,已经可以做到通过MyBatis连接数据库,现在再来介绍一种方法通过接口绑定SQL语句。不使用接口绑定的方式不使用接口绑定的方式,是通过调用SqlSession中的selectxxx方法,通过传递一个String类型的参数(通常为namespace的属性+SQLID),来寻找对应SQL文件中的参数。测试类: //创建SqlSessionFactory对象,并...
2019-12-11 14:22:00
41
原创 MyBatis系列(一) MyBatis入门
前言MyBatis官方文档:https://mybatis.org/mybatis-3/zh/index.htmlMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了...
2019-12-10 21:28:00
22
原创 TestNG系列(五)TestNG测试报告
以TestNG执行测试方法后会生成test-output测试结果集,其中index.html是测试结果的展示。TestNG的测试报告可以通过IReporter监听自定义,也可以通过第三方工具(ReportNG、ExtentReports)来定义测试报告Reporter.log记录的信息:执行的结果与错误信息:执行所用时间:...
2019-12-09 15:36:00
34
原创 TestNG系列(四)TestNG监听器
前言监听器实际上是一些预定义的java接口,用户创建这些接口的实现类(即implements某监听接口,并实现里面的方法),并加入到testng中,testng便会在运行的不同时刻调用这些类中你自定义实现的接口方法,从而实现定制额外的功能;一、IHookable:TestNG在测试方法执行前执行,常用于授权检查。IHookable实现类public class IHookableI...
2019-12-09 15:24:00
28
原创 TestNG系列(三)TestNG之XML文件配置
前言上一篇博客说了TestNG的注解,这篇博客来介绍Test.xml文件。Test.xml文件可以更方便的管理和执行测试用例一、Test.xml-suite:suite为Test.xml的根节点@name: suite的名称,必须参数,会体现在测试报告中。@parallel:是否多线程并发运行测试@configfailurepolicy:一旦Before/After Class/Met...
2019-12-09 14:11:00
32
原创 TestNG系列(二)TestNG注解
前言TetsNG提供了很多注解,允许测试人员灵活地组织测试用例一、@Test@Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法。description属性@Test(description = "yuhao")public void case1(){ System.out.println("case1方法");}在测试报告中体现出来enabled...
2019-12-09 12:23:00
23
原创 TestNG系列(一)TestNG+Eclipse环境配置
前提1、JDK的安装与环境变量的配置2、Eclipse的下载与安装以上这些是基础中的基础,不再详细介绍。Eclipse安装TestNG插件打开eclipse--->help--->install new software点击Add输入name与location:http://beust.com/eclipse/,点击OK。TestNG加载出来后点击OK,就...
2019-12-07 13:21:00
37
原创 HttpClient POST/GET方法
前言:网络API接口:https://api.apiopen.top/searchMusic此API接口返回类型为JSON格式类型GET:从指定资源请求数据POST:向指定资源提交要被处理的数据GET与POST的区别:①GET在浏览器回退时是无害的,而POST会再次提交请求。②GET只支持URL编码。③GET参数通过URL传递,参数直接暴露在URL中会泄露信息,POST通过Req...
2019-12-05 17:51:00
21
原创 Selenium+Java(十一)Selenium窗口切换
前言:Selenium在当前页面打开了新的窗口,此时就需要跳转到新的窗口去,需要把窗口进行切换。获取窗口句柄方法:获取所有://获取所有窗口句柄,返回的是set类型driver.getWindowHandles();获取当前://获取当前窗口句柄,返回的是string类型driver.getWindowHandle();窗口切换方法://窗口切换方法,需传入想要切换...
2019-12-05 16:49:00
17
原创 Selenium+Java(十)Selenium常用方法
前言:通过前几篇博客的已经了解了元素如何定位,提示框下拉框如何处理,多表单,鼠标键盘操作。此篇博客来介绍拿到想应的driver对象后如果对于对象做一些操作。get//打开网站driver.get("https://www.baidu.com/");gettitle//获取当前网页titledriver.getTitle()gettext//获取当前driver对象的t...
2019-12-05 14:10:00
14
原创 Selenium+Java(九)Selenium键盘与鼠标事件
一、键盘事件ctrl+adriver.findElement(By.id("kw")).sendKeys(Keys.CONTROL, "a");ctrl+xdriver.findElement(By.id("kw")).sendKeys(Keys.CONTROL, "x");ctrl+cdriver.findElement(By.id("kw")).sendKeys(Key...
2019-12-05 13:34:00
26
原创 Selenium+Java(八)Selenium下拉框处理
Selenium定位下拉框中的元素与普通元素定位有所不同,下面介绍三种定位下拉框元素的方法。下拉款HTML代码如图所示:一、通过text定位//获取下拉框对象Select city = new Select(driver.findElement(By.name("city")));//通过text值定位city.selectByVisibleText("驻马店");二、通过v...
2019-12-05 13:33:00
37
原创 Selenium+Java(七)Selenium对话框的处理
HTML代码如图所示:一、alertString url = "file:///C:/Users/ex_yuhao/Desktop/index.html";//引用IE浏览器驱动System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");//创建IE浏览器对象InternetExplor...
2019-12-03 18:14:00
21
原创 Selenium+Java(六)Selenium 强制等待、显式等待、隐实等待
前言在实际测试过程中,由于网速或性能方面的原因,打开相应的网页后或在网页上做了相应的操作,网页上的元素可能不会马上加载出来,这个时候需要在定位元素前等待一下,等元素加载出来后再进行定位,根据实际使用选择需要的等待方式。一、强制等待强制等待是利用time模块的sleep方法来实现,最简单粗暴的等待方法。但是此方法影响脚本的执行效率,所以不太推荐使用此方法。//强制等待1SThread...
2019-12-02 15:40:00
20
原创 Selenium+Java(五)iframe/frame多表单处理
前言如果网页中使用了frame,则在使用Selenium定位元素时需要切换到对应的frame,否则会定位不到需要的元素。切换到需要切换的frame中driver.switchTo().frame();切换回原先的frame中driver.switchTo().defaultContent();...
2019-12-02 15:18:00
35
1
原创 Selenium+Java(四)Selenium Xpath元素定位
前言关于Selenium元素定位,这是最后一篇博客。Xpath定位可以实现的功能Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的实际情况来选择,灵活运用。成功定位到元素才是王道。一、Xpath层级与索引定位以12306官网为例:如果想要定位此li标签中的内容,li标签中的内容如果没有相应的属性,此时可以先定位到li的上...
2019-11-29 14:44:00
66
原创 Selenium+Java(三)Selenium元素定位
前言使用Selenium做元素定位的时候,需要用到HTML的知识,所以最好是能懂得HTML的基本知识。一、页面元素的查看(以百度为例)打开IE浏览器,点击F12进入开发者模式,点击图中红圈圈中的小箭头后单击需要查看的元素(如百度输入框),在DOM Explorer中就会把代码定位过去。二、元素的定位1、根据元素id进行定位//引用IE浏览器驱动System.setProper...
2019-11-28 17:47:00
25
原创 Selenium+Java(二)Selenium打开IE浏览器
前言已在Eclipse中配置完成Selenium的相关配置,不知道如何配置的可参考我的另一篇博文:https://www.cnblogs.com/yogouo/p/11946940.html打开IE浏览器并打开百度,具体代码如下: 1 import java.util.concurrent.TimeUnit; 2 3 import org.openqa.selenium.ie.In...
2019-11-28 13:27:00
20
原创 Selenium+Java(一)Selenium基础环境配置
前言Selenium在Java中是以Jar包的形式存在,如要使用Java编写Selenium自动化测试用例,需要导入Jar包。selenium需要的Jar包下载地址:http://selenium-release.storage.googleapis.com/index.html一、项目创建+Jar包导入(Java基础较好的可跳过步骤一)1、打开Eclipse选择Flie---》New...
2019-11-28 13:25:00
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人