SoapUI中读取Office365邮件
常见邮件服务一般使用IMAP邮件访问协议,如果你所在公司更换到Office 365则需要另一个组件。
Office 365使用的是Exchange Server电子邮件服务组件,需要微软的Jar包来支持。
- 通过Maven下载ews-java-api-2.0.jar
- 下载地址http://mvnrepository.com/artifact/com.microsoft.ews-java-api/ews-java-api
- 在Groovy脚本中调用即可(可参考下面示例脚本)
package GroovyScript import java.util.Date
import microsoft.exchange.webservices.data.core.enumeration.property.BodyType
import microsoft.exchange.webservices.data.core.service.item.Item
import microsoft.exchange.webservices.data.property.complex.MessageBody
import microsoft.exchange.webservices.data.search.FindItemsResults
import microsoft.exchange.webservices.data.core.enumeration.service.ConflictResolutionMode int executeCount = 0 // 执行次数
int executeMax = 30 // 最大执行次数 同时也是最大执行时间
boolean checkIt = false // 是否找到需要的邮件 String emailAddress = context.expand( '${#Project#resetPWD_Email}' ) // 邮箱
String password = context.expand( '${#Project#resetPWD_OriginalPWD}' ) // 密码
int maxEmailsGet = 5 // 最大邮件获取数
String queryString = "Regarding area" // 筛选条件 while (executeCount < executeMax){ ReadEmail readEmail = new ReadEmail()
FindItemsResults getEmails = readEmail.getEmails(emailAddress, password, maxEmailsGet, "") // 连接邮箱 拿邮件 if (hasFound(getEmails, queryString)){
checkIt = true
break
} else{
Thread.sleep(1000)
executeCount += 1
log.info "---ExecuteCount: $executeCount"
continue
}
} assert checkIt, "Can not get the FeedBack email" // ----------------------------判断是否成功----------只针对此step------------------------------------------------------
def boolean hasFound(FindItemsResults getEmails, String queryString){ boolean hasFound = false
// 迭代 邮件内容
for (Item email : getEmails) { Date date = new Date() // 时间对象
def currentTime = date.getTime() // 当前时间
def lastEmailTime = email.getDateTimeReceived().getTime() // 此封邮件收取时间
def interval = currentTime - lastEmailTime // 时间间隔
def subject = email.getSubject() // 邮件标题
boolean hasAttachment = email.getHasAttachments() // 是否存在附件
def body = email.getBody() // 邮件内容 if ( interval < 30000 && subject.contains(queryString) && hasAttachment && email.getIsRead().equals(false)){ // 30秒以内的邮件有效
hasFound = true //置email为已读,并且同步到邮件服务器,这样无论以什么方式查看邮件,邮件都是已读状态
email.setIsRead(true)
email.update(ConflictResolutionMode.AlwaysOverwrite) break
} else {
continue
}
}
return hasFound
}
SoapUI中读取Office365邮件的更多相关文章
- SoapUI中读取法文字符
最近测试中,使用SoapUI时需要读取excel中的法文数据作为参数,groovy script中使用的是jxl进行excel的读取, 开始时一直显示乱码,而后在script中添加如下wookbook ...
- 使用C#和OpenPop.dll开发读取POP3邮件程序
制作一个ASP.NET MVC4论坛项目,该项目需要将以往十多年的Mail List(邮件列表)内容都导入到新的论坛中,因此需要能够将邮件的标题.发布时间.发布人及邮件内容导入到论坛的数据库内..Ne ...
- excel文件的groovy脚本在SoapUI中进行数据驱动测试
SoapUI Pro具有从外部文件读取数据的功能,例如:excel,csv等.但SoapUI不提供从excel文件读取数据的功能.因此,为了从SoapUI中的excel文件中读取数据,我们需要在gro ...
- .NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息
在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军——将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到 ...
- 五种方式让你在java中读取properties文件内容不再是难题
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...
- 条形码的应用三-----------从Excel文件中读取条形码
条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...
- 从多个XML文档中读取数据用于显示webapi帮助文档
前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
随机推荐
- IDEA将Maven项目中src源代码下的xml配置文件编译进classes
遇到这样的情况,maven项目启动报错,src中某个包下面的xml文件找不到. eclipse编译项目会自动将xml配置文件编译进classes,IDEA却不行 在报错项目的pom.xml文件中添加: ...
- 把以100000+4位随机码的登录账号(比如1000001234),赋予制单页面的权限,怎么写sql啊
insert into sys_user_role (user_id,role_id,office_id) select id,'000101100000000004UP',company_id f ...
- xtu summer individual 1 C - Design the city
C - Design the city Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu D ...
- Android渲染器Shader:梯度渐变扫描渲染器SweepGradient(二)
Android渲染器Shader:梯度渐变扫描渲染器SweepGradient(二) 附录文章1介绍了线性渐变渲染器. Android的SweepGradient梯度渐变扫描,重点是在构造Swe ...
- 服务器安装oracle前的内存调整
#当前内存大小为512MB,安装oracle时执行检查... Checking physical memory requirements ... Expected result: 922MB Actu ...
- loadrunner 多用户并发操作解读
假设存在: 数据:A.B.C 虚拟用户:Vuser1.Vuser2.Vuser3 脚本中参数出现三次,脚本迭代三次 怎样取下一行数据? Sequential:顺序,所有虚拟用户按照顺序读取数据表 Ra ...
- C#.net获取存储过程的Return返回值和Output输出参数值
原文发布时间为:2008-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 1.获取Return返回值 程序代码//存储过程//Create PROCEDURE MYSQL// @a ...
- Django学习之 - 基础部分
学习记录参考: 讲师博客:http://www.cnblogs.com/wupeiqi/articles/5433893.html 老男孩博客:http://oldboy.blog.51cto.com ...
- jdk8 stream可以与list,map等数据结构互相转换
前面我们使用过collect(toList()),在流中生成列表.实际开发过程中,List又是我们经常用到的数据结构,但是有时候我们也希望Stream能够转换生成其他的值,比如Map或者set,甚至希 ...
- windows安装ZIP压缩版的Weblogic Server
以前要装Weblogic Server的时候都是装的安装版,最近发现ZIP版本的Weblogic Server是一个只包含Weblogic Server的版本,于是就想着弄一下它. 这里用到的Webl ...