不幸的是,JMeter Mail Reader Sampler 不允许高级操作。但是 JMeter 可以通过脚本来扩展。
因此,您可以使用 Java Mail API 和提供的脚本采样器之一实现所有必需的方法:
请参阅下面的示例,使用 IMAP for Gmail 从“垃圾邮件”文件夹中删除所有邮件:
import com.sun.mail.imap.IMAPSSLStore;
import javax.mail. *;
try {
Properties properties = props;
properties.put("mail.smtps.auth", "true");
properties.put("mail.imap.ssl.enable", "true");
Session imapsession = Session.getInstance(properties, null);
imapsession.setDebug(false);
Store imapstore = new IMAPSSLStore(imapsession, new URLName("imaps", "imap.gmail.com", 993, "", "your.account@gmail.com", "password"));
imapstore.connect();
Folder rootfolder = imapstore.getDefaultFolder();
Folder[] imapfolders = rootfolder.list("*");
for (Folder folder : imapfolders) {
if (folder.getName().equals("Spam")) {
folder.open(Folder.READ_WRITE);
log.info("Spam folder contains " + folder.getMessageCount() + " messages");
Message[] messages = folder.getMessages();
for (Message message : messages) {
message.setFlag(Flags.Flag.DELETED, true);
log.info("Marking message with subject: " + message.getSubject() + " for deletion");
}
folder.expunge();
folder.close(true);
}
}
imapstore.close();
} catch (Exception ex) {
log.error("IMAP operation failed", ex);
}
Beanshell Sampler 不需要任何额外的配置,您只需复制并粘贴上面的代码即可。
但是 Beanshell 具有众所周知的性能问题和限制,因此如果您的测试假设或多或少的高负载,建议使用 JSR223 Sampler 和 Groovy 语言。
有关 Groovy 脚本引擎的更多信息和安装说明,请参阅 Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 脚本引擎比较基准。