自己主动化測试使用mybatis更新数据库信息实例
代码例如以下:
mybatis配置文件:
<? xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="mybatis-config/jdbc.properties" />
<typeAliases>
<typeAlias alias="SupplierInfo" type="ec.qa.autotest.ui.dao.model.SupplierInfo" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis-sqlmap/supplier.xml" />
</mappers>
</configuration>
JDBC配置文件:
##for mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://db-XXXX:3306? useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true
jdbc.username=qa
jdbc.password=XXXXXX
供应商数据对象类:
package ec.qa.autotest.ui.dao.model; /**
*
* @author xin.wang
* 供应商信息
*
*/
public class SupplierInfo { private String email; private String supplier_id; private String company_name; private int logical_del; public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getSupplier_id() {
return supplier_id;
} public void setSupplier_id(String supplier_id) {
this.supplier_id = supplier_id;
} public String getCompany_name() {
return company_name;
} public void setCompany_name(String company_name) {
this.company_name = company_name;
} public int getLogical_del() {
return logical_del;
} public void setLogical_del(int logical_del) {
this.logical_del = logical_del;
}
}
DAO层接口
package ec.qa.autotest.ui.dao; import java.util.List; import ec.qa.autotest.ui.dao.model.SupplierInfo; public interface SupplierOperationDao { public SupplierInfo seletSupplierInfo(String emali); public List<SupplierInfo> seletSupplierInfo(List<String > emalis); public void updateSupplierInfo(SupplierInfo info); public void updateSupplierInfo(List<SupplierInfo > infos); public void logicDeleteSupplierInfo(String attr); }
Mybatis 的sql mapper 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qa.autotest.ui.dao">
<select id="selectSupplierInfo" resultType="SupplierInfo">
select * from supplier.sup_supplier where email = #{email,jdbcType=VARCHAR} and logical_del = 0
</select> <update id="deleteSupplier">
update supplier.sup_supplier set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierInfo">
update supplier.sup_auth_info set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierInfoLog">
update supplier.sup_auth_info_log set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierLinkEffectiveness">
update supplier.sup_link_effectiveness set logical_del = 1 where email =
#{email,jdbcType=VARCHAR}
</update>
</mapper>
DAO实现类(注意加入pageobject标签,为用例自己主动注入此DAO实例):
package ec.qa.autotest.ui.dao.impl; import java.util.List; import org.apache.ibatis.session.SqlSession; import ec.qa.autotest.ui.dao.SupplierOperationDao;
import ec.qa.autotest.ui.dao.model.SupplierInfo;
import ec.qa.autotest.ui.framework.annotation.PageObject;
import ec.qa.autotest.ui.framework.init.InitMybatisSession; /**
* @author xin.wang 供应商数据库操作
*
*/
@PageObject
public class SupplierOpertaionDaoImpl implements SupplierOperationDao { private static SqlSession session; public SupplierInfo seletSupplierInfo(String emali) {
SupplierInfo si = null;
session = InitMybatisSession.getSessionFactory().openSession();
try {
si = session.selectOne("com.qa.autotest.ui.dao.selectSupplierInfo", emali);
session.commit();
} catch (Exception e) {
} finally {
session.close();
}
return si;
} public List<SupplierInfo> seletSupplierInfo(List<String> emalis) {
// TODO Auto-generated method stub
return null;
} public void updateSupplierInfo(SupplierInfo info) {
// TODO Auto-generated method stub } public void updateSupplierInfo(List<SupplierInfo> infos) {
// TODO Auto-generated method stub } public void logicDeleteSupplierInfo(String email) {
SupplierInfo si = null;
session = InitMybatisSession.getSessionFactory().openSession(false);
try {
si = session.selectOne("com.qa.autotest.ui.dao.selectSupplierInfo", email);
session.update("com.qa.autotest.ui.dao.deleteSupplier", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierInfo", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierInfoLog", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierLinkEffectiveness", si.getEmail());
session.commit(true);
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
}
測试用比例如以下:
package ec.qa.autotest.ui.admin.portal.testcases; import org.testng.annotations.Test;
import ec.qa.autotest.ui.dao.impl.SupplierOpertaionDaoImpl;
import ec.qa.autotest.ui.framework.annotation.AutoInject;
import ec.qa.autotest.ui.testbase.AdminPortalTestBase; /**
*
* @auther xin.wang
*依据邮箱名逻辑删除SUPPLIER信息
*/
//@Listeners({ TestngRetryListener.class })
public class LoginAdminPortal extends AdminPortalTestBase{ @AutoInject
private SupplierOpertaionDaoImpl sd; @Test(invocationCount = 1)
public void loginAdminPortal() throws Exception{
sd.logicDeleteSupplierInfo("123456@qq.com");
}
}
自己主动化測试使用mybatis更新数据库信息实例的更多相关文章
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- Mock+Proxy在SDK项目的自己主动化測试实战
项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...
- 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份
Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...
- Android自己主动化測试解决方式
如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...
- Android自己主动化測试之Monkeyrunner用法及实例
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- 带有机器人框架的.NET自己主动化測试
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...
- Android Monkey自己主动化測试
前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...
- iOS自己主动化測试的那些干货
前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...
随机推荐
- AHOI2018训练日程(3.10~4.12)
(总计:共90题) 3.10~3.16:17题 3.17~3.23:6题 3.24~3.30:17题 3.31~4.6:21题 4.7~4.12:29题 ZJOI&&FJOI(6题) ...
- hdu 3001 三进制状压
题意:tsp问题,但是每个点可以最多走两次 链接:点我 转移方程见代码 #include<iostream> #include<cstdio> #include<cstr ...
- php-streams扩展学习
一. streams是干嘛的: 用于统一文件.网络.数据压缩等类文件操作方式,并为这些类文件操作提供一组通用的函数接口. 二. stream是具有流式行为的资源对象,这个对象有一个包装类 例如: pr ...
- bosondata/chrome-prerender: Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using headless Chrome
bosondata/chrome-prerender: Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using headles ...
- 开发笔记:python与随机数(转)
这些天需要用到从一堆数中随机提取几个数,于是重新研究了下random模块. 下面介绍下random中常见的函数. 前提:需要导入random模块 >>>import random 1 ...
- JAVA-数据类型、变量、常量
http://blog.csdn.net/yuhailong626/article/details/7245571 http://www.cnblogs.com/JackieADBM/p/534222 ...
- DotNet.Utilities工具类
来源:http://git.oschina.net/kuiyu/dotnetcodes/tree/master/DotNet.Utilities
- react+redux+generation-modation脚手架搭建一个todolist
TodoList 1. 编写actions.js 2. 分析state 试着拆分成多个reducer 3. 了解store 4. 了解redux数据流生命周期 5. 分析容器组件和展示组件 搞清楚,数 ...
- u-boot中环境变量的实现
转载:http://blog.chinaunix.net/uid-28236237-id-3867041.html U-boot中通过环境参数保存一些配置,这些配置可以通过修改环境参数.保存环境参数. ...
- 使用Redisson实现分布式锁
原文:https://www.jianshu.com/p/cde0700f0128 1. 可重入锁(Reentrant Lock) Redisson的分布式可重入锁RLock Java对象实现了jav ...