Today, I mainly did the basic data management of the test user module, and encountered a relatively large problem. The user attributes are all IDS, but they need to be converted to the corresponding string type when returned to the front end, and then there are various kinds of validation of non mandatory parameters. A complex SQL, especially in the configuration of the XML file of mybatis, really let me learn for a while. Share the learning results.
The requirement diagram is as follows. Obtain the list of test users created by the current user according to several filter conditions:
The interface documentation is as follows:
All of them are required parameters. The string type defaults to "" and the number default to 0 means all.
Here is the contents of my XML file:
<sql id="table"> qa_test_user </sql> <sql id="user_status"> qa_user_status_name </sql> <sql id="env"> family_base_env </sql> <sql id="user_role"> qa_role_name </sql> <select id="findUsers" parameterType="com.okay.family.common.bean.testuser.SearchUserBean" resultType="com.okay.family.common.bean.testuser.TestUserBean"> select tu.id,tu.descc,tu.user,tu.phone,tu.password,tu.create_time,us.name status,env.name env,ur.name role from <include refid="table"/> tu left join <include refid="user_status"/> us on tu.status = us.status left join <include refid="env"/> env on tu.envId = env.id left join <include refid="user_role"/> ur on tu.roleId = ur.roleId where tu.uid = # <if test="status != 0"> and tu.status = # </if> <if test="envId != 0"> and tu.envId = # </if> <if test="roleId != 0"> and tu.roleId = # </if> <choose> <when test="type == 0 and query != null"> and tu.user = # </when> <when test="type == 1 and query != null"> and tu.phone = # </when> <when test="type == 2 and query != null"> and tu.id = # </when> </choose> </select>
Here is the content of the Java bean:
package com.okay.family.common.bean.testuser import com.okay.family.common.basedata.OkayConstant import com.okay.family.fun.base.bean.AbstractBean import org.hibernate.validator.constraints.Range import javax.validation.constraints.Min class SearchUserBean extends AbstractBean { private static final long serialVersionUID = 894894891651651L; int uid @Range(min = 0L, max = OkayConstant.ENV, message = "Environment parameter error") int envId @Min(value = 1L) int pageNum @Range(min = 5L, max = 20L, message = "Display quantity per page is set incorrectly") int pageSize @Range(min = 0L, max = 10L, message = "User identity parameter error") int roleId @Range(min = 0L, max = OkayConstant.USER_STATUS, message = "User status parameter error") int status String query @Range(min = 0l, max = 2L, message = "Search type error!0 Account 1 mobile number 2 user id") int type }
Finally, we solved this problem. The rest of US continued to move the bricks, and finally realized the difficulty of development: moving the whole body with one hair, changing the property name, and modifying no less than five disorderly places. I hope there will be fewer bugs during the test.
- The official account is that the public number "FunTester" starts, and welcomes attention and prohibits the third party from reprinting. More original articles: FunTester 18 original albums , please contact [email protected] .
Hot text selection
- Interface function test album
- Performance test topics
- Diagram HTTP brain map
- Programming thinking for all
- Good book recommendation Java performance authority Guide
- Selenium parallel testing best practices
- How to maintain automated testing
- About UI test plan
- Software test outsourcing