在SoapUI中模拟用户操作
SoapUI作为一款接口测试工具,具有极大的灵活性和拓展性。它可以通过安装插件,拓展其功能。Selenium作为一款Web自动化测试插件可以很好的与SoapUI进行集成。如果要在SoapUI中模拟用户点击界面的功能,不借助selenium是无法完成的。
一、准备工作 - 给SoapUI安装selenium插件
1. 首先,我们需要下载selenium的网站(https://docs.seleniumhq.org/download/)下载server-standalone版本,这里以selenium-server-standalone.jar 2.25.0为例。由于官网的下载地址需要经过google网址才能下载到,这里提供从maven仓库下载的办法:进入http://www.mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server-standalone,找到适合的版本,将maven的配置copy到项目中,然后等maven下载jar到本地。找到maven本地缓存的目录,在里面可以找到selenium的jar包了。
2. 将这个jar复制一份放入"${SoapUI安装目录\bin\ext}"。如果你的SoapUI是默认安装的,则这个目录为:C:\Program Files\SmartBear\SoapUI-5.3.0\bin\ext。复制完之后,重启SoapUI(如果你在复制之前已经打开了SoapUI的话)
二、测试场景
这里以模拟用户在百度输入关键字“test”进行搜索为例。首先我们在项目里面新建一个Grovvy Script,输入以下脚本,执行之后就可以找到百度第一页的所有搜索结果的联接了:
完整的脚本:
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait; def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) //初始化HTMLUnitDriver(headless browser)
HtmlUnitDriver driver = new HtmlUnitDriver(); //在headless browser中打开网址
driver.get("https://www.baidu.com"); //log.info(driver.getPageSource()); //找到输入框,并在框中输入“test”
WebElement input = driver.findElement(By.name("wd"));
input.sendKeys("test"); //找到搜索按钮,并点击
WebElement button = driver.findElement(By.id("su"));
button.click(); //寻找出左边显示搜索结果的div
//System.out.println(driver.getPageSource());
WebElement container = driver.findElement(By.id("content_left")); //将所有超链接打印出来
List<WebElement> list = container.findElements(By.tagName("a")); for (WebElement ele : list) {
log.info(ele.getAttribute("href"));
} //4. close browser window
driver.close();
driver.quit(); //5. assert
assert list.size()>0
在SoapUI中模拟用户操作的更多相关文章
- jQuery中模拟用户操作
有时为了节省不想手动操作网页,但又想看到用户操作时的效果,可以用到jQuery提供的trigger方法.见下图代码 在不点击按钮时仍然想弹出this.value 我们只需要在后面加上.trigger( ...
- Android手机上,利用bat脚本模拟用户操作
………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...
- HttpClient 模拟用户操作
首先模拟用户登录: /** * 模拟用户登录 * */ private void login() throws HttpException, IOException { PostMethod logi ...
- python爬虫入门(五)Selenium模拟用户操作
爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库), ...
- C#中模拟用户登陆SharePoint网站
自动化测试一个SharePoint网站,首先要登陆,我们今天就模拟一下用户登陆SharePoint网站的过程,这一过程可以通过其他方式完成模拟,比如通过Coded UI Test录制脚本会更方便,但是 ...
- SAP中查询用户操作日志的事务码
事务码:STAD 注意:查询的时间跨度范围不要太大,否则会很慢! 事务码:ST03N 工作负载和性能统计
- 如何在组件(Component中)模拟用户控件(UserControl)中FindForm()?
using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentM ...
- Android随笔之——用shell脚本模拟用户按键、触摸操作
之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作.本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容. 本文的模拟功 ...
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
随机推荐
- Exp5MSF基础应用——20164325王晓蕊
1.实验要求 一个主动攻击实践,ms08_067; 一个针对浏览器的攻击,MS11-003(唯一): 一个针对客户端的攻击,adobe_toolbutton: 成功应用任何一个辅助模块Ipidseq( ...
- JavaScript之DOM创建节点
上几篇文章中我们罗列了一些获取HTML页面DOM对象的方法,当我们获取到了这些对象之后,下一步将对这些对象进行更改,在适当的时候进行对象各属性的修改就形成了我们平时看到的动态效果.具体js中可以修改D ...
- wordpress背景添加跟随鼠标动态线条特效
今天看到别人的博客,在鼠标移动背景时会出现线条动态特效 感觉挺有意思的,还有另一种,在背景点击时会跳出字符特意去找了方法,以为需要添加代码的,结果只要安装个插件就可以了,所以说wordpress就是方 ...
- Javascript高级编程学习笔记(36)—— DOM(2)Document
Documet类型 了解了基础的Node类型过后,我们来聊聊Node中的Document类型 我们知道所有的节点都继承自Node类型 所以除了Node类型公有的方法和类型之外,Document类型还有 ...
- PDF 报表 Java 组件 iText5 中的单位注意事项
这里面涉及到这几个单位: 点(磅)(pt).像素(px).英寸(inch).毫米(mm) 分辨率单位有: dpi(点每英寸):出现于打印或印刷领域. lpi (线每英寸):描述光学分辨率的尺度. pp ...
- 第68节:Java中的MYSQL运用从小白到大牛
第68节:Java中的MYSQL运用从小白到大牛 前言 学习java必备要求,学会运用!!! 常见关系化数据库 BootStrap是轻量级开发响应式页面的框架,全局css组件,js插件.栅格系统是将页 ...
- postgresql 安装文档
tar xf postgresql-9.4.5.tar.gz cd postgresql-9.4.5 yum grouplist yum grouplist|grep Deve yum groupin ...
- 单元测试mock当前时间
在实际项目中很多地方用到DateTime.Now,这个时间是时时变化的.如果要进行单元测试对比预期结果时,这个时间无法预测,可以添加如下两个时间类 namespace Common.Helper { ...
- Spring详解(七)------AOP 注解
上一篇博客我们讲解了 AspectJ 框架如何实现 AOP,然后具体的实现方式我们是通过 xml 来进行配置的.xml 方式思路清晰,便于理解,但是书写过于麻烦.这篇博客我们将用 注解 的方式来进行 ...
- shell 中let无法使用的原因
运行 sh let.sh 时,却显示 let: not found 百度之后知道: /bin/sh指向了dash而不是bash,dash不支持let命令. 解决方法: 法1.使用 bash ...