|
本帖最后由 ryugun 于 2012-3-2 15:58 编辑
步骤2:在步骤1登陆成功的基础上(主要是获取session),以上传一个东西为例(selenium上传东西是弱项)
package com.XXX.action.bypost.system.blanch;
import java.util.Map;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import com.XXX.Constants;
import com.XXX.action.bypost.common.BaseActionByPost;
import com.XXX.action.bypost.common.GetIdByQuerySQL;
/**
* 通过Post请求的方式导入单位
*
* <p/>excel对应关键字:importBlanchByPost
*
*/
public class ImportBlanchByPost extends BaseActionByPost {
/**
* 导入单位的PostURL
*/
public static final String POSTURL = Constants.BASEURL + "/department/importDepartment.do";
/**
* 通过Post请求的方式导入单位
* @return context aw参数传递上下文对象
* @param context aw参数传递上下文对象
* @param str 包含各种参数的数组(从用例数据文件里读取出的一行数据)
* <p/>str[0]:当前数据行状态(eg:准备/测试点/恢复)
* <p/>str[1]:动作关键字
* <p/>str[2]:要导入的excel文件名(包含后缀名)
* <p/>str[3]:父单位名称(eg:单位根目录)
*/
public Map<String, Object> execute(Map<String, Object> context, String[] str) {
String filePath = getParamsPath(BaseActionByPost.class.getResource("").getPath()) + str[2]; //待上传的文件路径
int respanceCode = 0; //返回的状态码
try {
init(context); //初始化client和sessionID
if (Constants.AllDEPARTMENT.equals(str[3].trim())) { //父单位选择 全部单位
Part[] parts = {new FilePart("fileData", getFile(filePath)),
new StringPart("parentId", "0")}; //父单位ID
respanceCode = upload(POSTURL, parts); //提交请求并返回状态码(这里的upload函数就是在父类BaseActionBypost里面写好的,下面的doPost也是一样的)
} else {
String sql = "select id from department where name='" + str[3] + "'"; //sql语句
GetIdByQuerySQL query = new GetIdByQuerySQL(); //查询出对应父单位在mysql中的id(这里是我自己方便得到ID,去直接查询Mysql)
Part[] parts = {new FilePart("fileData", getFile(filePath)),
new StringPart("parentId", query.execute(sql, "id"))}; //父单位ID
respanceCode = upload(POSTURL, parts); //提交请求并返回状态码
}
} catch (Exception e) {
throw new AssertionError();
}
if (Constants.RESPANCECODE == respanceCode) { //判断返回的状态码是否正确
logger.info(str[0] + "," + str[1] + "," + str[2] + "," + str[3] + ",【success】");
} else {
}
context.put(Constants.CLIENT, client);
return context;
}
} |
|